设计模式
2022年8月19日
设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
设计模式7大原则
相关文章:设计模式7大原则
- 单一职责原则
- 接口隔离原则
- 依赖倒转(倒置)原则
- 里氏替换原则
- 开闭原则
- 迪米特法则
- 合成复用原则
设计模式
相关文章
创建型设计模式
- 创建型-单例模式(Singleton):对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。
- 创建型-工厂模式(Factory):一个工厂类根据传入的参量决定创建出哪一种产品类的实例。
- 创建型-原型模式(Prototype):通过复制现有的实例来创建新的实例。
- 创建型-建造者模式(Builder):建造者模式就是将一个个简单的对象一步一步构建成一个复杂的对象。
结构型设计模式
- 结构型-适配器模式(Adapter):将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)
- 结构型-桥接模式(Bridge):一种结构型设计模式:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变
- 结构型-装饰者模式(Decorator):动态地将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式体现了开闭原则(OCP)
- 结构型-组合模式(Composite):又叫部分整体模式。它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系
- 结构型-外观模式(Facade):它提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用
- 结构型-享元模式(Flyweight):利用共享的方式来支持大量细粒度的对象,这些对象一部分内部状态是相同的。 它让某个类的一个实例能用来提供许多"虚拟实例"
- 结构型-代理模式(Proxy):为另一个对象提供一个替身或占位符以控制对这个对象的访问
行为型设计模式
- 结构型-模板模式(Template):模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤
- 结构型-命令模式(Command):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可。此时可以使用命令模式来进行设计
- 结构型-访问者模式(Visitor):封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作
- 结构型-迭代器模式(Iterator):迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构
- 结构型-观察者模式(Observer):在对象之间定义一对多的依赖, 这样一来, 当一个对象改变状态, 依赖它的对象都会收到通知, 并自动更新
- 结构型-中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互
- 结构型-备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态
- 结构型-解释器模式(Interpreter):是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式)
- 结构型-状态模式(Strategy):当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类
- 结构型-策略模式(State):定义算法族,分别封装起来,让他们之间可以互相替换。此模式让算法的变化独立于使用算法的客户
- 结构型-职责链模式(Chain Of Responsibility):为请求创建了一个接收者对象的链。这种模式对请求的发送者和接收者进行解耦