Hay varios tipos de patrones de diseño.

Los patrones de diseño se dividen en varios tipos, ¿qué patrones de diseño se incluyen en cada tipo y cuáles son las características de cada patrón de diseño?

Los patrones de diseño generalmente se dividen en tres tipos: patrones de creación, patrones estructurales y patrones de comportamiento. Cada tipo de patrón de diseño tiene diferentes objetivos y escenarios de aplicación. A continuación, se presenta brevemente cada tipo de patrón de diseño y sus patrones de diseño comunes.

1. Patrones creacionales

Los patrones de creación se centran en el proceso de creación de objetos, proporcionan una forma más flexible de crear objetos y, por lo tanto, reducen el acoplamiento entre objetos. Los patrones de creación comunes incluyen:

* 单例模式(Singleton):保证一个类只有一个实例,并提供一个全局访问点来访问该实例。

* 工厂模式(Factory):将对象的创建过程封装在一个工厂类中,从而使客户端与具体实现分离,提高了系统的可维护性和可扩展性。

* 抽象工厂模式(Abstract Factory):提供一个接口来创建一系列相关或依赖对象的家族,而不需要指定具体的类。

* 建造者模式(Builder):将一个复杂对象的构建过程分离出来,使其可以按照不同的步骤来创建对象。

* 原型模式(Prototype):通过复制现有对象来创建新对象,从而避免了昂贵的初始化操作。

2. Patrones estructurales

Los patrones estructurales se centran en la composición de objetos y tienen como objetivo proporcionar una forma más flexible de diseñar estructuras de software. Los patrones estructurales comunes incluyen:

* 适配器模式(Adapter):将一个类的接口转换成客户端所期望的另一个接口,从而使原本不兼容的类可以协同工作。

* 桥接模式(Bridge):将一个对象的抽象和实现分离开来,从而使它们可以独立变化。

* 组合模式(Composite):将对象组合成树形结构,以表示“部分-整体”的层次结构,从而使客户端可以像处理单个对象一样来处理对象的组合。

* 装饰器模式(Decorator):动态地给对象添加额外的职责,从而不需要创建新的子类来扩展功能。

* 外观模式(Facade):为一组复杂的子系统提供一个简单的接口,从而将子系统与客户端隔离开来,使客户端可以更容易地使用子系统。

* 享元模式(Flyweight):共享大量细粒度对象以节省内存,从而提高系统的性能。

3. Patrones de comportamiento

Los patrones de comportamiento se centran en la comunicación entre objetos y tienen como objetivo proporcionar una forma más flexible de lograr la interacción entre objetos. Los patrones de comportamiento comunes incluyen:

* 模板方法模式(Template Method):定义一个操作中的算法骨架,将某些步骤延迟到子类中实现,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

* 策略模式(Strategy):定义一系列算法,将每个算法封装起来,并使它们可以相互替换,从而使得算法可以独立于使用它的客户端而变化。

* 命令模式(Command):将请求封装成一个对象,从而使得可以将不同的请求参数化,并且可以对请求进行排队或记录日志,以及支持可撤销的操作。

* 职责链模式(Chain of Responsibility):将请求的发送者和接收者解耦,从而使得多个对象可以处理一个请求,将这些对象串成一条链,并且沿着这条链传递该请求,直到有一个对象处理它为止。

* 状态模式(State):将对象的行为和状态分离开来,使得对象在不同的状态下可以有不同的行为,从而实现状态机的功能。

* 观察者模式(Observer):定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。

* 中介者模式(Mediator):将对象之间的交互封装到一个中介对象中,从而使得对象之间的交互变得松散耦合,而不是紧密耦合。

* 访问者模式(Visitor):定义了对一组对象结构中的元素进行操作的操作,从而使得可以在不改变各个元素的类的前提下定义新的操作。

* 迭代器模式(Iterator):提供一种访问一个聚合对象中各个元素的方式,而不需要暴露该对象的内部表示。

* 解释器模式(Interpreter):给定一个语言,定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子。

Supongo que te gusta

Origin blog.csdn.net/qq_42133976/article/details/130436587
Recomendado
Clasificación