工厂模式

2020-07-05  本文已影响0人  来到了没有知识的荒原

工厂(factory)就是专门用于创建类(product)的类

1. 简单工厂模式

简单工厂模式就是菜鸟教程里介绍的,客户传递一个参数告诉工厂自己想要什么产品,工厂内部通过if else判断返回哪一个产品。

但简单工厂模式是违背OCP原则的。

OCP原则:对扩展开放,对修改封闭

因为如果要生产一个新的产品(product),工厂内部代码就要改变,增加一个 else if 去判断是否要生产这个产品。

这个改变就违背了OCP原则中的对修改封闭

2.抽象工厂模式

抽象工厂是abstract接口,只规定工厂需要实现的方法,新建具体的工厂用于生产特定产品。这样虽然每次都要新建一个新的工厂,但是是对原有(abstract)工厂的扩展,没有修改抽象工厂的内部代码,因此满足OCP原则

比如java中的Collection就是一个抽象工厂模式的设计

虚线箭头表示implements接口,实线箭头表示extends继承
上一篇 下一篇

猜你喜欢

热点阅读