谁能够讲讲简单工厂模式和策略模式有什么本质区别?
谁能够讲讲简单工厂模式和策略模式有什么本质区别?
谢谢
------解决方案--------------------区别很大哦,前一个解决的问题是 对象的创建
后一个封装一系列的算法 并使他们可以替换。
------解决方案--------------------前一个是创建模式,后一个是行为模式。
------解决方案--------------------策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
简单工厂:将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。
简单工厂严格意义上不是一种设计模式,只能是一种良好的编程习惯。
------解决方案--------------------实际整个Strategy的核心部分就是抽象类的使用,使用Strategy模式可以在用户需要变化时,修改量很少,而且快速。
Strategy和Factory有一定的类似,Strategy相对简单轻易理解:
Strategy适合下列场合:
1.以不同的格式保存文件;
2.以不同的算法压缩文件;
3.以不同的算法截获图象;
4.以不同的格式输出同样数据的图形,比如曲线 或框图bar等。
------解决方案--------------------简单工厂侧重明确类的职责
策略侧重演示抽象类的使用
------解决方案--------------------