设计模式-创建型设计模式-03.工厂方法(php)
设计模式类型
创建型设计模式
设计模式名称
工厂方法
UML角色
应用场景
1、客户端在使用某个产品时,清楚的知道应该使用哪个具体的工厂服务,实例化该具体的工厂,生产出具体的产品来。
2、只需要一种产品,而客户端不想知道也不需要知道究竟哪个工厂生产的,即最终选择哪个具体工厂的决定权在生产者一方,生产者根据当前系统的情况来实例化一个具体的工厂返回给使用者,而这个决策的过程对于客户端来说是透明的。
优缺点
优点
1、利用工厂方法类区创建具体的产品对象,隐藏了具体产品对象的创建细节,客户端只需关心具体产品对应的具体工厂
2、遵守开闭原则。加入新的产品类时,只需要同时加入工厂类就可以实现扩展,无需修改原来的代码。
缺点
1、随着产品种类的数量增长,工厂类也会随之增加,将不利于系统的维护,增加系统的编译和运行的开销。
git地址:
https://github.com/wonlon/Design-patterns