设计模式应用分类

本文详细介绍了设计模式的三大类型:创建型模式包括单例、工厂方法、抽象工厂、生成器和原型模式;结构型模式涉及合成、装饰、代理、享元、外观、桥梁和适配器模式;行为型模式涵盖模板方法、观察者、迭代器、责任链、备忘录、命令、状态、访问者、解释器和中介者模式。通过这些模式,开发者可以更好地管理和组织代码结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式从应用的角度被分为三个大的类型
1. 创见型模式:用来创建对象的模式,抽象了实例化的过程
单件(Singleton)模式:要求提供一种机制,保证一个类有且仅有一个实例,并且提供一个全局的访问点。
工厂方法(Factory Method):父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建)哪一个类。
抽象工厂(Abstract Factory):该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创建一个具体的工厂类。
生成器模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节。
原型(Prototype)模式:通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。 

2. 结构型设计模式:结构型模式讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),或者通过组合一些对象,从而实现新的功能(对象结构型模式)。
合成(Composite)模式:定义一个接口,使之可以用于单一对象,也可以应用于多个单一对象组成的对象组。
装饰(Decorator)模式:动态给一个对象添加一些额外的职责,就好像给一个物体加上装饰物,完善其功能。
代理(Proxy)模式:在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切,这就是代理(Proxy)模式。
享元(Flyweight)模式:Flyweight是一个共享对象,它可以同时在不同上下文(Context)使用,并在每个上下文中Flyweight都可以作为一个独立的对象。
外观(Facade)模式:外观模式为子系统提供了一个更高层次、更简单的接口,从而降低了子系统的复杂度和依赖。这使得子系统更易于使用和管理。外观是一个能为子系统和客户提供简单接口的类。当正确的应用外观,客户不再直接和子系统中的类交互,而是与外观交互。外观承担与子系统中类交互的责任。
桥梁(Bridge)模式:桥梁模式的用意是将问题的抽象和实现分离开来实现,通过用聚合代替继承来解决子类爆炸性增长的问题。
适配器(Adapter)模式:将一个的接口适配成用户所期待的接口。一个适配器允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包装在一个已存在的类中。

3. 行为型模式:着力解决的是类实体之间的通讯关系,希望以面向对象的方式描述一个控制流程。
模版方法(Template Method):定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实现方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。
观察者(Observer)模式:定义了对象之间一对多的依赖,当这个对象的状态发生改变的时候,多个对象会接受到通知,有机会做出反馈。
迭代子(Iterator)模式:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。
责任链(Chain of Responsibility)模式:在责任链模式里,很多对象由每一个对象对其下一个对象的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使系统可以在不影响客户端的情况下动态的重新组织链和分配责任。
备忘录(Memento)模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
命令(Command)模式:将请求及其参数封装成一个对象,从而可以对这些请求排队或记录请求日志,以及支持可撤销的操作。
状态(State)模式:允许一个“对象”在其内部状态改变的时候改变其行为,即不同的状态,不同的行为
访问者(Visitor)模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
解释器(Interpreter)模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
中介者(Mediator)模式:用一个中介对象来封装一系列的对象交互。
策略(Strategy)模式:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值