您的位置:首页 > 编程语言 > Java开发

设计模式-策略模式

2017-03-28 17:16 204 查看
最近在学习设计模式,就记录一些自己的学习过程,希望和大家共同进步,有意见不一致的请提出指点。


策略模式(Strateyg Pattern):

是一种行为模式,定义算法族(指同一种行为不同的表现方式),分别封装起来,可以在不影响客户端的情况下使得算法之间相互替换。

角色概括:
  具体产品抽象类:
具体产品实现类:
行为变化抽象类或接口:
具体行为实现类:
UML图如下:



why-为什么要使用它?
可以将变化的事物封装起来,动态的使用。如果不使用这种设计模式,那将会造成代码大量重写,业务判断混乱。
举个例子:如果一个编写计算器,首先实现加法算法,然后就编写了一个算法类,类中定义一个加法方法。如果后续需要新加减法算法,然后需要修改算法类,增加一个减法方法,违法了面向对象的开闭原则,并且变化是不断的,可能之后还会增加乘法算法、除法算法等,所以我们应该要将可变的分离出来,这个时候我们就可以使用策略模式,使用策略模式后如果需要增加算法,只需要增加相对应的算法子类即可,不会影响其他算法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息