模板方法模式:
一个程序的流程是不变的比如流程是A-B-C-D。但是某些流程的内容是变化的,这时候可以将变化的流程延迟到子类中去决定。比如说人每天要做的事: 起床-吃饭-工作-吃饭-睡觉。整个流程是固定不变的,但是吃的东西和工作的事情是变化的。
需要注意的几点:
1:需要保证整个流程不会被改变。
2:只将需要变化的操作延迟到子类去。
3:将需要变化的操作只对子类开发,对其他类关闭。
策略模式:
定义:
定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。
假如你有一笔钱需要兑换成其他国家的货币,但是每个国家的货币汇率是不一样的。通过相应的策略类去得到兑换后的货币数目。(当你遇到需要进行多个判断时,你就要考虑是否使用策略模式了)
缺点:
1:你需要将所有策略暴力出来以供选择。
2:当策略过多时会产生大量的策略类。
优点:
1:便于扩展与维护。
观察者模式:
定义一个一对多的依赖关系,当一个对象发生变化时,所有依赖他的对象都自动进行变化。
目标对象只需要完成自己的工作,观察者自己去变化。
网友评论