Java中如何实现策略模式
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关Java中如何实现策略模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这里设计了一个有关足球的场景,在进攻当中暂分为传球和射门两个动作。最开始你
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
互联网高科技
深圳九邦互联网科技有限公司
云信互联网科技有限公司
圆梦互联网科技
互联网是不是新科技
互联网 科技
电子科技大学互联网
齐家互联网科技有限公司
国外互联网科技网站
北京三清互联网科技
宁夏众和广鑫互联网科技有限公司
互联网科技公司实习生
广州市恰铎互联网科技有限公司
华夏恒生科技与互联网科技
为客找房互联网科技公司怎么样
半导体是互联网高科技吗
扫呗互联网科技有限公司
容联科技互联网电商
中国新注册互联网科技
河南商务圈互联网科技有限公司
湖北九亚互联网络科技有限公司
未来的互联网科技
中国互联网金融科技基金
中国的互联网科技企业的崛起
阿里互联网科技公司
阿大互联网科技有限公司
苏州铭阳互联网科技有限公司
洛阳昕诺飞互联网科技有限公司
富国互联网金融科技混合基金
互联网 科技节活动 微视频大赛