Java中如何实现策略模式
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章给大家分享的是有关Java中如何实现策略模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这里设计了一个有关足球的场景,在进攻当中暂分为传球和射门两个动作。最开始你
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
股票软件开发python
网络安全硕士学什么
南充市赵勇软件开发工程师
日本软件开发挣钱
大华服务器怎么添加海康设备
电脑捷顺数据库在哪里
网络安全损失第一位
真空封口机软件开发
德青源软件开发
杭州工控软件开发哪家正规
网络安全童心向党四年级手抄报
数据库库存存储引擎
数据库 查询有相同数据
网络安全模式能联网正常连不上
csgo本地服务器延迟大
共享服务器怎么打不开
软件开发新思路
新疆网络安全教育讲座
软件开发设计创业
凯丽网络技术服务中心
安装路由器时用不用注册服务器
网络安全损失第一位
平台数据库有哪些
vip数据库
mysql查询数据库数目
长春在哪里找软件开发公司
济南众德软件开发有限公司
h3c x86服务器
怎么把sql的数据库删除
计算机网络技术多少工资