设计模式 - 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 个。
- 结构型模式 (Structural patterns) 将对象和类组装成较大的结构,并同时保持结构的灵活和高效。7 个。
- 行为模式 (Behavioral patterns) 负责对象间的高效沟通和职责委派。12 个。
These patterns provide various object creation mechanisms, which increase flexibility and reuse of existing code.
这类模式提供创建对象的机制,提升已有代码的灵活性和可复用性。
在父类中提供一个创建对象的接口以允许子类决定实例化对象的类型。
创建一系列相关的对象,而无需指定其具体类。
分步骤创建复杂对象,该模式允许你使用相同的创建代码生成不同类型和形式的对象。
复制已有对象,而又无需使代码依赖它们所属的类。
singleton ['sɪŋɡ(ə)ltən]:n. (某一花色的) 单张,单元素集合
保证一个类只有一个实例,并提供一个访问该实例的全局节点。
These patterns explain how to assemble objects and classes into larger structures while keeping these structures flexible and efficient.
这类模式介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。
让接口不兼容的对象能够相互合作。
使用它将对象组合成树状结构,并且能像使用独立对象一样使用它们。
facade [fəˈsɑːd]:n. 外表,(建筑物的) 正面
能为程序库、框架或其他复杂类提供一个简单的接口。
proxy [ˈprɒksi]:n. 代理人,代表,代理权,代表权
提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。
将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。
decorator [ˈdekəˌreɪtə(r)]:adj. 适于室内装饰的 n. (房屋的) 油漆匠
允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。
flyweight ['flaɪ.weɪt]:n. 蝇量级拳击手 (体重 48 至 51 公斤之间)
摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。
These patterns are concerned with algorithms and the assignment of responsibilities between objects.
这类模式负责对象间的高效沟通和职责委派。
允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。
memento [məˈmentəʊ]:n. 纪念品
允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。
在超类中定义一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。
它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中,且能实现可撤销操作。
允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。
将算法与其所作用的对象隔离开来。
不暴露集合底层表现形式 (列表、栈和树等) 的情况下遍历集合中所有的元素。
在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。
mediator ['mi:dieɪtə(r)]:n. 调停者,斡旋者,解决纷争的人 (或机构)
减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。
定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。
https://sourcemaking.com/design_patterns
https://refactoringguru.cn/design-patterns
https://refactoring.guru/design-patterns



