Java中如何实现策略模式
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章给大家分享的是有关Java中如何实现策略模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这里设计了一个有关足球的场景,在进攻当中暂分为传球和射门两个动作。最开始你
千家信息网最后更新 2025年01月22日Java中如何实现策略模式
这篇文章给大家分享的是有关Java中如何实现策略模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
这里设计了一个有关足球的场景,在进攻当中暂分为传球和射门两个动作。
最开始你可能会这样想,设计一个抽象类(Attact),传球和射门分别定义好,子类会有一些他们个性的东西。比如球员号码,教练名称等等。
后来你发现传球和射门可能会分好多种,传球可分为短传和长传,射门又分为巴蒂式射门和因扎吉式的抢点。这样就不能将他们都写在这个抽象类(Attact)中,比如有的队员就是一个工兵型的(像AC米兰的加图索)他不停的抢断传球,很少参与到射门当中来。这样再定义若干个子类来继承(Attact)就不能满足需求。
我们可以把诸如传球和射门等动作抽象出来。组合到该抽象类中,只需在其中调用具体的方法即可。
像这样来定义:(其中Passable和Shootable为行为接口)
package strategy; /** * @author edison * @date 2009-9-24 */ public abstract class Attact { Passable pass; Shootable shoot; public abstract void display(); public void ownPass(){ pass.action(); } public void ownShoot(){ shoot.action(); } public void setPass(Passable pass) { this.pass = pass; } public void setShoot(Shootable shoot) { this.shoot = shoot; } }
这里我们采用了策略模式,将传球和射门这一类动作定义为标准,封装起来,让他们之间可以互相的组合和替换,这样有效的使具体操作和实现分离。
上面一段话也可以这样说:
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
得到几个设计原则:
1.找到应用中可能变化之处,把它们独立初以来,不要和那些不需要变化的代码混在一起。
2.针对接口编程,而不是针对实现编程。
3.多用组合,少用继承。
类图:
以上就是策略模式的一个简单案例。
感谢各位的阅读!关于"Java中如何实现策略模式"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
传球
模式
策略
动作
算法
变化
组合
设计
之间
内容
就是
接口
更多
篇文章
封装
有关
独立
编程
不错
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
系统网络安全评估报
应用服务器软件技术规范
辽宁服务器带电清洗虚拟主机
创建一张学生表数据库
没有选择创建rac数据库选项
it和软件开发的区别
电大数据库应用技术期末答案
做软件开发要考什么证书吗
做ebay大家都是用啥服务器
数据库管理语言vf
软件开发是哪个专业
盈趣科技软件开发
闵行区信息软件开发销售
一般网站数据库怎么设计
4g手机无线网络安全思路
联想万全2450R服务器的图片
贵州服务器机房现货
服务器返回40014是什么意思
北京币天下网络技术有限公司
网络安全管家是做什么的
淮安软件开发费用
服务器是不是都是linux
立思辰网络安全设备
搜索数据库飘红
戴尔服务器报警查询
switchlite代理服务器
数据库清空代码
成都章琰栋软件开发工作室
参展商数据库实际上就是黄页
网络安全的社会层面