以前的项目对接的是腾讯,现在要接今日头条,再改下代码吧!
策略模式的特点:
- 继承导致问题——子类行为和父类不同需要重载,子类不能有父类某行为,那继承就更有问题。
- 抽象接口导致问题——实现类全部得实现接口——代码重用是空谈。
- 那么如果是接口-》父类-》子类这样的结构呢?可行否?
策略模式将上述既不能用继承也不能用接口的行为剥离出来,放到新的接口-》实现类中,然后将接口作为原来父类的成员属性,同时声明使用该成员属性完成行为的方法,以及设置该成员属性的setter,getter确保动态设置行为。
新的接口-》实现类+setter 就可以使得父类对象具有变化的完全不同的行为。其中运用了多态。