创建型设计模式
创建型设计模式:侧重于对象的创建。
创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。
创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。
包含模式
- 简单工厂模式(Simple Factory) 重要程度:4 (5为满分)
- 工厂方法模式(Factory Method) 重要程度:5
- 抽象工厂模式(Abstract Factory) 重要程度:5
- 建造者模式(Builder) 重要程度:2
- 原型模式(Prototype) 重要程度:3
- 单例模式(Singleton) 重要程度:4
简单工厂模式、工厂方法模式、抽象工厂模式区别
- 简单工厂:唯一工厂类,一个产品抽象类,工厂类的创建方法依据入参判断并创建具体产品对象。
创建方法中就要增加新的if-else。这种做法扩展性差,违背了开闭原则,也影响了可读性。所以,这种方式使用在业务较简单,工厂类不会经常更改的情况。
- 工厂方法:多个工厂类,一个产品抽象类,利用多态创建不同的产品对象,避免了大量的if-else判断。
为了解决上面提到的”增加if-else”的问题,可以为每一个子类建立一个对应的工厂子类,这些工厂子类实现同一个抽象工厂接口。这样,创建不同类型,只需要实现不同的工厂子类。当有新品牌加入时,新建具体工厂继承抽象工厂,而不用修改任何一个类。
- 抽象工厂:多个工厂类,多个产品抽象类,产品子类分组,同一个工厂实现类创建同组中的不同产品,减少了工厂子类的数量。
为了缩减工厂实现子类的数量,不必给每一个产品分配一个工厂类,可以将产品进行分组,每组中的不同产品由同一个工厂类的不同方法来创建。
建造者模式与工厂模式区别
建造者模式就是将简单的产品集合到一下类里,从而创造出复杂的产品。与工厂模式的区别在于:工厂模式关注的是创建单个产品,而建造者模式关注的按需求“组装”多个部分,使之获得一个集合。
单例模式
单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
Enjoy Reading This Article?
Here are some more articles you might like to read next: