开闭原则:在扩展新类时,不去修改原有的类代码。
工厂模式分为三种:简单工厂、工厂方法和抽象工厂。
思想:将具体产品的创建过程抽象化,外部通过接口获取具体产品,不需要关心产品的具体过程。解耦产品的创建过程和使用过程的复杂度,通过统一的产品工厂来创建具体产品。
一、简单工厂模式
组成:多个产品类,一个工厂类。
由仅有的一个工厂控制各个产品的创建过程,外部client只需调用工厂类即可。
适用场景:产品实例较少,eg不同数据库的连接。
缺点:所有产品的创建过程都放在一个统一的工厂类中。
扫描二维码关注公众号,回复:
9670919 查看本文章
二、工厂方法模式
组成:每个产品都有一个产品类和一个工厂类(每一个产品工厂都继承自一个统一的抽象工厂),工厂类负责产品的具体创建。外部client需要特定产品时候,需要特定的工程类来创建。适用场景:每个产品由单独的产品工厂实现,可扩展性高。eg网络日志、数据库日志等。
摘自:https://refactoring.guru/design-patterns/factory-method
三、抽象工厂模式
组成:存在多个产品和多个产品工厂,每个产品工厂可以创建多个产品。
适用场景:一个应用包括多个相似的产品,eg:word中的不同按钮等。
摘自:https://refactoring.guru/design-patterns/abstract-factory
未完待续~