zoukankan      html  css  js  c++  java
  • 23种设计模式相关文章

    结构型模式

    1、Decorator装饰器模式

    总结:
    在不修改原方法的情况下,对其扩展功能。动态的赋予其功能。

    2、Bridge桥接模式

    总结:
    将实现与抽象分离。使其实现能够在不同维度进行灵活变化。如同一个功能在不同的平台实现不同。则可以采用桥接模式。一般用于项目的设计阶段。

    3、Adapter适配器模式

    总结:
    复用以前的类。来实现一些新的功能。如有一个新的接口需要实现。但其功能可以由以前的一些类经过一些处理实现时。则可以采用适配器模式。在不改变原有类的基础上实现新的接口。一般用在项目的后期。
    相比于桥接模式。适配器模式更加具体(用某个具体的对象来实现新的接口)。而桥接模式只是对抽象的不同实现。

    4、Composite组合模式

    总结:
    简单对象和复杂对象实现同一套接口。使得客户的调用变得简单。
    ps:透明式组合模式在面对需求变化时(如叶子变成了枝干),处理起来比较灵活。

    5、Proxy代理模式

    总结:
    动态代理:C#之动态代理的实现
    应用场景:aop

    创建型模式

    1、Builder建造者模式

    总结:
    将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

    2、Flyweight享元模式

    总结:
    复用对象。将内部状态和外部状态分离。
    如缓存、字符串驻留池、线程池

    3、Factory工厂模式

    工厂方法模式
    抽象工厂模式
    总结:
    延迟实例的创建到子类中。

    4、Prototype原型模式

    总结:
    快速复制一个对象。而不是使用New。
    浅拷贝或者深拷贝

    5、Singleton单例模式

    扩展:
    静态变量何时初始化

    行为模式

    1、Observer观察者模式

    总结:
    类似C#中的事件、发布订阅
    一对多

    2、Command命令模式

    总结:
    命令模式是对命令的封装(把方法封装成对象)。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。
    就像键盘上的每一个按键就是一个命令。按下按键就发出请求。然后电脑让对应命令去执行。

    3、Mediator中介者模式

    总结:
    多对多。管理一组对象之间的交互,使对象之间解耦
    如SignalR

    4、State状态模式

    总结:
    当对象有多个状态且不同的状态涉及到不同的行为时。则可以采用状态模式。
    将每个状态对对象行为的影响放到具体的状态对象中去处理。避免了多个if else的判断。
    如qq会员不同的等级有不同的功能。

    5、Template Method模板方法模式

    总结:
    当某些行为的执行流程都一致只是某些细节的实现不一样时。则可以采用模板方法模式。
    抽象类实现该行为的执行过程。让子类去实现不同的细节。

    6、Facade外观模式

    总结:
    组织小方法已完成某个行为

    7、Strategy策略模式

    总结:
    策略模式主要用于随时对某个方法的实现进行替换。
    类似桥接模式。只不过调用方是确定的一个对象。桥接模式则是一个抽象类。

    8、Iterator迭代器模式

    总结:
    迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而又无需暴露该对象的内部实现,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。

    9、Memento备忘录

    10、Interpreter解释器模式

    11、Chain of Responsibility责任链模式

    12、Visitor访问者模式

  • 相关阅读:
    GIT 相关
    createFile
    值传递、指针传递、引用传递
    Sightseeing trip
    find the longest of the shortest
    Laurenty and Shop
    Dima and Lisa
    Marina and Vasya
    Kolya and Tanya
    Two Substrings
  • 原文地址:https://www.cnblogs.com/qwfy-y/p/14884459.html
Copyright © 2011-2022 走看看