23 种设计模式的分类 - Design Patterns
23 种设计模式的分类 - Design Patterns
设计模式 - Design Patterns
https://refactoringguru.cn/design-patterns
https://refactoring.guru/design-patterns
Design patterns are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code.
设计模式是软件设计中常见问题的典型解决方案,代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。每个模式就像一张蓝图,你可以通过对其进行定制来解决代码中的特定设计问题。
设计模式是针对软件设计中常见问题的工具箱,其中的工具就是各种经过实践验证的解决方案。
1. Classification of patterns - 模式的分类
模式可以根据其意图或目的分为三种类别:
- 创建型模式 (Creational patterns) 提供创建对象的机制,提升已有代码的灵活性和可复用性。5 个。
Factory method (工厂方法), Abstract factory (抽象工厂), Builder (生成器), Prototype (原型), Singleton (单例) - 结构型模式 (Structural patterns) 将对象和类组装成较大的结构,同时保持结构的灵活和高效。7 个。
Adapter (适配器), Composite (组合), Facade (外观), Proxy (代理), Bridge (桥接), Decorator (装饰), Flyweight (享元) - 行为模式 (Behavioral patterns) 负责对象间的高效沟通和职责委派。11 个。
Chain of responsibility (责任链), Memento (备忘录), Template method (模板方法), Command (命令), Observer (观察者), Visitor (访问者), Iterator (迭代器), State (状态), Mediator (中介者), Strategy (策略), Interpreter (解释器)
2. Creational patterns - 创建型模式
These patterns provide various object creation mechanisms, which increase flexibility and reuse of existing code.
创建型模式模式提供创建对象的机制,提升已有代码的灵活性和可复用性。
2.1 Factory Method - 工厂方法
在父类中提供一个创建对象的接口以允许子类决定实例化对象的类型。
2.2 Abstract Factory - 抽象工厂
创建一系列相关的对象,而无需指定其具体类。
2.3 Builder - 生成器
分步骤创建复杂对象,该模式允许你使用相同的创建代码生成不同类型和形式的对象。
2.4 Prototype - 原型
复制已有对象,而又无需使代码依赖它们所属的类。
2.5 Singleton - 单例
singleton ['sɪŋɡ(ə)ltən]:n. (某一花色的) 单张,单元素集合
保证一个类只有一个实例,并提供一个访问该实例的全局节点。
3. Structural patterns - 结构型模式
These patterns explain how to assemble objects and classes into larger structures while keeping these structures flexible and efficient.
结构型模式模式将对象和类组装成较大的结构,同时保持结构的灵活和高效。
3.1 Adapter - 适配器
让接口不兼容的对象能够相互合作。
3.2 Composite - 组合
使用它将对象组合成树状结构,并且能像使用独立对象一样使用它们。
3.3 Facade - 外观
facade [fəˈsɑːd]:n. 外表,(建筑物的) 正面
能为程序库、框架或其他复杂类提供一个简单的接口。
3.4 Proxy - 代理
proxy [ˈprɒksi]:n. 代理人,代表,代理权,代表权
提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。
3.5 Bridge - 桥接
将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。
3.6 Decorator - 装饰
decorator [ˈdekəˌreɪtə(r)]:adj. 适于室内装饰的 n. (房屋的) 油漆匠
允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。
3.7 Flyweight - 享元
flyweight ['flaɪ.weɪt]:n. 蝇量级拳击手 (体重 48 至 51 公斤之间)
摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。
4. Behavioral patterns - 行为模式
These patterns are concerned with algorithms and the assignment of responsibilities between objects.
行为模式负责对象间的高效沟通和职责委派。
4.1 Chain of Responsibility - 责任链
允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。
4.2 Memento - 备忘录
memento [məˈmentəʊ]:n. 纪念品
允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。
4.3 Template Method - 模板方法
在超类中定义一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。
4.4 Command - 命令
它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中,且能实现可撤销操作。
4.5 Observer - 观察者
允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。
4.6 Visitor - 访问者
将算法与其所作用的对象隔离开来。
4.7 Iterator - 迭代器
不暴露集合底层表现形式 (列表、栈和树等) 的情况下遍历集合中所有的元素。
4.8 State - 状态
在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。
4.9 Mediator - 中介者
mediator ['mi:dieɪtə(r)]:n. 调停者,斡旋者,解决纷争的人 (或机构)
减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。
4.10 Strategy - 策略
定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。
4.11 Interpreter - 解释器
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
References
https://sourcemaking.com/design_patterns
https://refactoringguru.cn/design-patterns
https://refactoring.guru/design-patterns
设计模式:可复用面向对象软件的基础
总结
以上是生活随笔为你收集整理的23 种设计模式的分类 - Design Patterns的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 可以使用python开发财务软件吗_给还
- 下一篇: ASP.Net使用ADSI操作IIS遇到