23种设计模式,23种设计模式记忆口诀
23种设计模式,23种设计模式记忆口诀详细介绍
本文目录一览:
- 1、
- 2、
JAVA23种设计模式
**一、三大类别设计模式简介**:
**1. 创建型模式(共5种)**:
* 工厂方法模式:提供了一种在不指定具体类的情况下创建对象的方式。
* 抽象工厂模式:允许创建一系列相关或相互依赖的对象,无需明确指定它们的类。
* 单例模式:确保一个类仅有一个实例,并提供一个全局访问点。
* 建造者模式:将一个复杂对象的构建与其表示分离开来,使得同样的构建过程可以创建不同的表示。
* 原型模式:通过复制现有对象来创建新对象。
**2. 结构型模式(共7种)**:
* 适配器模式:将一个类的接口转换成客户端所期望的另一种接口,从而使原本由于接口不兼容而无法协同工作的类能够一起工作。
* 装饰器模式:动态地给一个对象添加一些额外的职责,就扩展功能而言,装饰器模式相比继承更加灵活。
* 代理模式:为其他对象提供一个代理以控制这个对象的访问。比如远程代理,用于对远程对象进行访问。
* 外观模式:提供一个统一的接口用于访问子系统中的一群接口,从而简化对子系统的使用。
* 桥接模式:将抽象部分与实现部分分离,使它们可以独立变化。
* 组合模式:将对象组合成树形结构以表示部分整体的层次结构。
* 享元模式:通过共享对象来减少内存中的对象数量,以实现性能优化。
**3. 行为型模式(共11种)**:
* 策略模式:定义了一系列算法,并将每一个算法封装起来,使它们可以互相替换。
* 模板方法模式:在一个方法中定义了一个算法的骨架,允许子类在不改变算法结构的情况下重定义某些步骤的具体内容。
* 观察者模式:当一个对象的状态改变时,所有依赖于它的对象都会得到通知并被自动更新。
* 其他行为型模式如迭代子模式、责任链模式、命令模式等,均是描述对象之间如何交互和通讯的。
**二、设计模式的六大原则**:
**1. 开闭原则(Open/Close Principle)**: 对扩展开放,对修改关闭。意味着你可以轻松地向软件添加新功能,而无需修改现有的代码。
**2. 里氏代换原则(Liskov Substitution Principle)**: 允许使用衍生类来替换基类,而不会影响系统的正确性和可维护性。这确保了基类的可复用性以及衍生类的可扩展性。
**3. 依赖倒转原则(Dependence Inversion Principle)**: 强调程序应依赖于抽象接口,而不是具体实现。这有助于减少代码的耦合度并提高可维护性。
**4. 接口隔离原则(Interface Segregation Principle)**: 将大的接口拆分成更小的、更具体的接口,每个接口只服务于特定的客户端或子系统。这有助于降低类之间的依赖关系和耦合度。
**5. 迪米特法则(Demeter Principle - 最少知道原则)**: 一个实体应当尽量少的与其他实体发生相互作用,以保持系统的模块化和高内聚性。这有助于减少不必要的依赖和复杂性。
**6. 合成复用原则(Composite Reuse Principle)**: 通过合成或聚合的方式复用代码和功能,而不是通过继承来实现复用。这有助于避免继承带来的脆弱性和破坏类的封装性。
23种设计模式记忆口诀
一段便于记忆的口诀,详细描述了23种设计模式,让人印象深刻:
一、创建型模式五宗最
口诀:原建工单抽,五法创造新世界。
解释:五种创建型模式包括原型模式(原)、建造者模式(建)、工厂方法模式(工)、单例模式(单)和抽象工厂模式(抽),这五种模式共同创造出一个崭新的设计世界。
二、结构型模式七大宝
口诀:带装备,组合桥享。外国人为适应而生辉。
解释:七种结构型模式包括代理模式(带)、适配器模式(装)、装饰器模式(饰)、外观模式(组合)、桥接模式(桥)、享元模式(享),这些模式如同宝石般,让外国人都为之赞叹。
三、行为型模式十一种奇
口诀:多次迭代中,命令责状显;车模状态惊,慌忙解开衣。
解释:十一种行为型模式如诗中所说。通过“多次”迭代(迭代子模式)、“命令”执行(命令模式)和“责任”传播(责任链模式),各种设计策略相互映衬,创造出惊异的模型设计(策略、模板等)。如同一个意想不到的转变让人惊讶万分(状态),整个过程中不得不立刻采取行动(访问者模式),甚至需要慌忙解开一些束缚(解释器模式)。
此口诀不仅易于记忆,而且富有诗意,能够有效地帮助记忆这23种设计模式的名称和特点。