• 设计模式-创建型模式


    工厂模式

      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

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

  • 相关阅读:
    Ocelot一款.NET下的API网关介绍
    【Core】.NET Core 部署( Docker + CentOS)
    VS2019添加git源代码管理
    sql两个表组合到一起,字符串拼接后放在最后一列上
    sqlserver取随机数随机取数
    delphi时间戳(10位)
    消息 7356,级别 16,状态 1,第 1 行 链接服务器 "downloadschoolcardinfo" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 为列提供的元数据不一致。对象 ""VIEW_ZJK"."V_QDXQHIS_RYXX"" 的列 "XZZ" (编译时序号为 9)在编译时有 1 的 "LENGTH",但在运行时有 2。
    sqlserver简单的组合串
    Delphi提示:List Index out Of bounds(5)
    SQLserver简单的竖向转横向
  • 原文地址:https://www.cnblogs.com/zhouj-happy/p/6344267.html
Copyright © 2020-2023  润新知