简单工厂模式
- 一个需求
看一个披萨的项目:要便于披萨种类的扩展,要便于维护
1)
披萨的种类很多
(
比如
GreekPizz
、
CheesePizz
等
)
2)
披萨的制作有
prepare
,
bake, cut, box
3)
完成披萨店订购功能。
- 传统方式
类图:
分析:
定义一个抽象类披萨,奶酪披萨、芝士披萨都继承披萨类;订购披萨的客户端有很多,
不同的客户端都能完成相应的订购功能。
优点:容易理解,好操作;
缺点:如果这时,需要增加一种新的披萨,订购披萨1、订购披萨2……都需要修改代码,
不利于项目的扩展。
- 简单工厂模式
类图:
分析:
优点:增加一个简单工厂,订购披萨1、订购披萨2……不再需要关系披萨种类的变化,
只需要修改简单工厂,就能满足需要;
订购披萨1、订购披萨2……直接调用简单工厂即可。方便维护,符合开闭原则,相同的功能
放到工厂类中处理,减少了代码的重复。
- 总结
对简单工厂模式的理解是,专业的人做专业的事情,如果没有这样的专业岗位,那么就新增
这样的岗位。各司其职,让工作效率最大化。