策略模式: 定义了算法族,分别封装起来,让他们之间可以相互替换,让算法的变化独立于使用算法的客户。

个人理解:
需要做一件事情,但事情的内容是不确定的,可能是事情A,可能是事件B,由某些条件决定
在程序中体现为:
public class Person {
public void doOneThing(事件类型){
if(事件类型 ==事情A){
//这样做
}else if(事件类型 ==事情B){
//这样这样做
}else {
//.......
}
}
}
缺点:Person 需要知道每一个事情如何去做,增加新的事情时,会修改代码增加 if else代码让Person知道如何去做,造成doOneThing 方法过大,不易于维护阅读。
解决方法:
将这些可变的事情做法抽取出来,按其共性定义接口Thing,每种事情的做法封装为Thing接口的实现,利用多态的特性,Person只要获得Thing 调用Thing的方法就可以执行某个事了,而不是必须知道事件如何去做。
当新增事情时,只需要新增Thing接口实现,Person类的结构无需变动。

策略模式使用中需要解决策略的选择问题。
总结:策略模式本质是利用了对接口操作及多态的特性。
本文介绍了策略模式的概念及其在软件设计中的应用。策略模式允许算法独立于客户端,并通过将算法封装成一系列可互换的类来实现灵活性。文章还讨论了如何通过多态特性减少代码耦合度,提高可维护性。

被折叠的 条评论
为什么被折叠?



