当前位置: 首页 > news >正文

23种设计模式详细知识点(软件设计师)

设计模式

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

1.创建型设计模式: ①抽象工厂(Abstract Factory)、②生成器(Builder)、③工厂方法(Factory Method)、④原型(Prototype)、⑤单例(Singleton)
2.结构型设计模式: ①适配器(Adapter)、②桥接(Bridge)、③组合(Composite)、④装饰(Decorator)、⑤外观(Facade)、⑥享元(Flyweight)、⑦代理(Proxy)
3.行为设计模式: ①责任链(Chain of Responsibility)、②命令(Command)、③解释器(Interpreter)、④迭代器(Iterator)、⑤中介者(Mediator)、⑥备忘录(Memento)、⑦观察者(Observer)、⑧状态(State)、⑨策略(Strategy)、⑩模板方法(Template Method)、⑪访问者(Visitor)

设计模式

  • 设计模式
  • A.创建型设计模式(5种)
    • 1.抽象工厂(Abstract Factory)
    • 2.生成器(Builder)
    • 3.工厂方法(Factory Method)
    • 4.原型(Prototype)
    • 5.单例(Singleton)
  • B.结构型设计模式(7种)
    • 1.适配器(Adapter)
    • 2.桥接(Bridge)
    • 3.组合(Composite)
    • 4.装饰器(Decorator)
    • 5.外观(Facade)
    • 6.享元(Flyweight)
    • 7.代理(Proxy)
  • C.行为设计模式(11种)
    • 1.责任链(Chain of Responsibility)
    • 2.命令(Command
    • 3.解释器(Interpreter)
    • 4.迭代器(Iterator)
    • 5.中介者(Mediator)
    • 6.备忘录(Memento)
    • 7.观察者(Observer)
    • 8.状态(State)
    • 9.策略(Strategy)
    • 10.模板方法(Template Method)
    • 11.访问者(Visitor)

A.创建型设计模式(5种)

处理创建对象

1.抽象工厂(Abstract Factory)

2.生成器(Builder)

3.工厂方法(Factory Method)

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

适用于:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。

4.原型(Prototype)

5.单例(Singleton)

B.结构型设计模式(7种)

类和对象的组合

1.适配器(Adapter)

2.桥接(Bridge)

3.组合(Composite)

将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

适用于:想表示对象的部分-整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。

4.装饰器(Decorator)

描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责 ,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。

适用于:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。

5.外观(Facade)

为子系统中的一组接口提供一个一致的界面,定义了一个高层接口, 这个接口使得这一子系统更加容易使用。

适用于:要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用Fapde模式定义子系统中每层的入口点。

6.享元(Flyweight)

运用共享技术有效地支持大量细粒度的对象。

一个应用程序使用了大量的对象;完全由于使用大量的对象,造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象:应用程序不依赖于对象标识。

7.代理(Proxy)

C.行为设计模式(11种)

描述类或者对象的交互行为

1.责任链(Chain of Responsibility)

2.命令(Command

3.解释器(Interpreter)

4.迭代器(Iterator)

5.中介者(Mediator)

用一个 中介对象来封装一系列的对象交互。 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。欲使一个后端数据模型能够被多个前端用户界面连接,

6.备忘录(Memento)

7.观察者(Observer)

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。

8.状态(State)

9.策略(Strategy)

10.模板方法(Template Method)

11.访问者(Visitor)


http://www.mrgr.cn/news/8582.html

相关文章:

  • lit-llama代码笔记--LLaMA Model
  • iOS Native与JS通信:JSBridge
  • 电子电气架构 --- 车载网简史(中)
  • Linux源码阅读笔记-USB设备驱动架构
  • 服务器机柜是什么意思?
  • [Day 62] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • C# 数组,List,Stack,Dictionary,Queue,LinkedList 如何选择
  • 【商城功能系统开发】
  • <C++> 多态
  • 物联网架构之Hadoop(分布式文件系统与企业级应用)
  • vue3+ts+Go使用百度地图路书实现历史轨迹回放、轨迹回放进度、聚合点、自定义弹框和实时监控视频、多路视频轮巡播放
  • 学习小结8.25
  • 90. UE5 RPG 实现技能的装配
  • CF E. Best Pair
  • 什么是同源策略?
  • ViewModel(4)数据存储和管理
  • 车辆电子围栏系统:守护爱车安全的智能新防线
  • 墨刀基础篇(一):全局事件和动效
  • 2024世界机器人大会盛大开幕,卓翼飞思携无人智能领域产品集中亮相 !
  • 【信创】Linux上lsof命令详解 _ 统信 _ 麒麟 _ 方德