• 设计模式总结


    1.简单工厂模式

    该类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化的相关的类,对于客户端来说,去除了与具体产品的依赖。

    2.策略模式(strategy)

    定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。

    特点:算法本身是一种策略,算法随时都可以互相替换

    3.装饰模式

    装饰模式是为已有功能动态地添加更多功能的一种方式,以装扮为例,装饰模式把每个装饰的功能放在单独的类中,让这个类包装它所有装饰的对象,客户代码可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象。而不需要增加主类的复杂度。

    4.代理模式

    代理就是真实对象的代表

    Subject类,定义了RealSubject(真实主题)和Proxy(代理)的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。

    使用场景:1.远程代理,为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在

    于不同地址空间的事实。

    2.虚拟场景·,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真是对象。

    3.安全代理,用来控制真实对象访问时的权限。

    4.智能指引,是指当调用真实的对象时,代理处理另外一些事。

    5.工厂方法模式(Factory Method)

    定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类延迟到其子类。

    6.原型模式(Prototype)

    解决多次实例化同一个类

    原型模式是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。

    (让一个原型克隆自身从而创建一个新的对象)

    同时又分深拷贝和浅拷贝,齐纳拷贝只复制结构,不复制数据,而深拷贝即复制结构又复制数据;

    7.模板方法模式

    定义一个操作中的算法的骨架,而降一些步骤延迟到子类中;

    模板方法提供了一个很好的代码复用平台。

    8.迪米特法则(LoD)

    如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

    9.外观模式

    外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

    10.建造者模式(生成器模式)

    建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。该模式可以将一个产品的内部表象与产品的生成过程分割开来。用户只需要指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需要知道了。

    11.观察模式(发布-订阅(Publish/Subscribe)模式)

    观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能自动更新自己。

  • 相关阅读:
    第二十五篇:UE4如何通过http方式请求接口Json数据
    一文了解 Go 方法
    从零开始学GNN
    什么是DC?DC和AC的区别是什么?
    Portraiture5全新升级版磨皮滤镜插件神器
    数据结构和算法笔记1:滑动窗口
    java基于Springboot+vue的宠物销售商城网站 elementui
    系统架构设计师学习笔记——软件架构设计_重点备忘录
    C++ 多态
    001docker架构介绍
  • 原文地址:https://blog.csdn.net/qq_22764813/article/details/130627033