为什么我感觉策略模式和工厂模式的代码实现没什么区别呢,虽说一个使用factory负责生产bean,一个通过Context管理Strategy抽象类,这二者总感觉没什么区别啊。
简单来说,模板方法模式就是英语考试的完形填空题(自己考虑填什么词、句子),策略模式就是信息匹配题(提前写好选择项,当你有多个填空时,直接选就好了,没有适合的就再多写几个选择项)。
论相似,策略模式跟模板方法模式比较像。模板方法模式:子类对象用相同的父类模块方法,不同的子类分别实现模块方法中的抽象方法,从而实例化不同的子类对象(父类提供抽象方法,继承了的子类自己各自慢慢写怎么叫,怎么飞)。策略模式:就只是将父类模板中的抽象方法改成接口,并将该接口方法实现(一个个列出来),子类不用再像模板方法模式去慢慢一个个实现,而是直接调用其实现方法就行了(你需要那个就直接去用)。工厂模式是用来生产对象的。模板方法模式和策略模式是用来完善对象的属性,建议你看看模板方法模式