栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

设计模式 - Design Patterns

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式 - Design Patterns

设计模式 - 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 个。
  • 结构型模式 (Structural patterns) 将对象和类组装成较大的结构,并同时保持结构的灵活和高效。7 个。
  • 行为模式 (Behavioral patterns) 负责对象间的高效沟通和职责委派。12 个。
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 - 策略


定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。

References

https://sourcemaking.com/design_patterns
https://refactoringguru.cn/design-patterns
https://refactoring.guru/design-patterns

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/684085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号