设计模式学习笔记(开篇)-抽象工厂 工厂模式 简单工厂(1) 讲述的是简单工厂的实现,即相关优缺点
设计模式学习笔记(开篇)-抽象工厂 工厂模式 简单工厂(2) 讲述的是工厂模式的实现,即相关优缺点
设计模式学习笔记(开篇)-抽象工厂 工厂模式 简单工厂(3) 讲述的是抽象工厂的实现,即相关优缺点
上面三个是连续的,如果要完整了解,建议从第一篇开始。
下面是我自己对抽象工厂模式、工厂模式和简单工厂模式的关系理解。(如果有误,欢迎留言)
简单工厂:
1.定义一个创建对象的接口,根据传入的参数,生成对应的实例
2.方便对象的集中管理和维护,同时使用者和具体实例解耦,依赖这个工厂,而不依赖具体实现
3.缺点就是不适合复杂的对象创建。要维护大量的逻辑。同时违反了OCP原则,扩展时,需要修改原有的工厂方法。所以简单工厂方式,适合简单的对象创建
工厂模式:
1.工厂方法是创建一个框架,让子类决定如何实现
2. 工厂方法的弹性,扩展简单,符合OCP。不需要修改原有的实现,只需要根据框架新实现一个
3.工厂方法让使用者只需要依赖抽象,而不需要依赖具体的实现
4.缺点是不易于维护,假如某个具体产品类需要进行一定的修改,很可能需要修改对应的工厂类。当同时需要修改多个产品类的时候,对工厂类的修改会变得相当麻烦
抽象工厂模式:
1.将客户和与类的实现分离。让客户依赖接口,只通过抽象接口操作实例
2.易于交换产品系列(抽象工厂用于创建一系列相关或者相互依赖的接口)
3.它有利于产品的一致性。当一个系列中的产品对象被设计成一起工作时,一个应用一次只能使用同一个系列的对象。这点很重要
4.缺点是难以扩展新种类的产品,因为产品集合一开始确定在AbstractFactory中,新增产品种类,需重新修改原有的抽象类,这可能涉及到子类的修改。