设计模式-创建型模式

工厂模式

  1. why

    主要解决接口选择的问题。

  2. when

    我们明确地计划不同条件下创建不同实例时。

  3. how

    在工厂方法中,根据特定字符串返回不同的实例。

 

抽象工厂模式

  1. why

    当有多个产品等级结构时,工厂模式不适用,需要使用抽象工厂模式。

  2. when

    系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。

  3. how

    具体工厂继承抽象工厂,通过传入特殊字符,返回具体的工厂,下同工厂模式。

 

单例模式

  1. why

    保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  2. when

    耗时的类频繁地创建与销毁影响性能。

    某些情况下,只能有一个实例。

  3. how

    私有的构造器。

 

原型模式 

  1. why

    创建重复的对象,同时又能保证性能。

  2. when

    1、当一个系统应该独立于它的产品创建,构成和表示时。

    2、当要实例化的类是在运行时刻指定时,例如,通过动态装载。

    3、为了避免创建一个与产品类层次平行的工厂类层次时。

    4、当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。

  3. how

    实现克隆操作,在 JAVA 继承 Cloneable,重写 clone()

 

建造者模式

  1. why

  将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。

  2. when

    1、创建一个对象时,并不一定拥有创建对象的全部信息,需要分步骤创建。

    2、需要生成的对象具有复杂的内部结构。

  3. how

    建造者模式将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。

原文地址:https://www.cnblogs.com/zhouj-happy/p/6344267.html