设计模式分为几种类型

设计模式分为几种类型,每种类型具体又包括哪些设计模式,每种设计模式又有哪些特点?

设计模式通常被分为三种类型:创建型模式、结构型模式和行为型模式。每种类型的设计模式都有不同的目标和应用场景,下面简要介绍每种类型的设计模式及其常见的设计模式。

1. 创建型模式

创建型模式关注对象的创建过程,它们提供了一种更灵活的方法来创建对象,从而降低了对象之间的耦合性。常见的创建型模式包括:

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

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

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

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

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

2. 结构型模式

结构型模式关注对象之间的组合,旨在提供一种更灵活的方法来设计软件结构。常见的结构型模式包括:

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

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

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

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

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

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

3. 行为型模式

行为型模式关注对象之间的通信,旨在提供一种更灵活的方法来实现对象间的交互。常见的行为型模式包括:

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

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

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

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

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_42133976/article/details/130436587