深入解析!23种设计模式的核心精髓与应用场景
创作时间:
作者:
@小白创作中心
深入解析!23种设计模式的核心精髓与应用场景
引用
CSDN
1.
https://blog.csdn.net/weixin_46453743/article/details/145781634
以下是GoF提出的23种设计模式的简单介绍,这些模式按功能分类,分别属于创建型模式、结构型模式和行为型模式:
创建型模式 (Creational Patterns)
- 工厂方法模式 (Factory Method)
- 意图:定义一个创建对象的接口,让子类决定实例化哪一个类。
- 使用场景:当无法提前知道具体对象的类型时使用。
- 抽象工厂模式 (Abstract Factory)
- 意图:提供一个接口,用于创建一系列相关或相互依赖的对象,而不指定具体类。
- 使用场景:创建相关对象的系统,需要支持多个产品系列。
- 建造者模式 (Builder)
- 意图:将一个复杂对象的构建与表示分离,使同样的构建过程可以创建不同的表示。
- 使用场景:构造具有多个部件的复杂对象,且对象的创建过程稳定。
- 原型模式 (Prototype)
- 意图:通过复制现有的实例来创建新的对象。
- 使用场景:需要创建相似对象时,减少重复创建开销。
- 单例模式 (Singleton)
- 意图:确保一个类只有一个实例,并提供全局访问点。
- 使用场景:全局唯一实例的需求,如配置管理类、资源管理类等。
结构型模式 (Structural Patterns)
- 适配器模式 (Adapter)
- 意图:将一个类的接口转换成客户端期望的另一种接口,使不兼容的类能协同工作。
- 使用场景:连接接口不兼容的类或对象。
- 桥接模式 (Bridge)
- 意图:将抽象部分与实现部分分离,使它们可以独立变化。
- 使用场景:对象需要多个维度的变化,同时保持独立变化的可能性。
- 组合模式 (Composite)
- 意图:将对象组合成树形结构,使得客户端可以一致地处理单个对象和组合对象。
- 使用场景:表示“部分-整体”结构的场景,如文件系统的文件夹结构。
- 装饰器模式 (Decorator)
- 意图:动态地给对象添加额外职责。
- 使用场景:不想通过继承来扩展功能,或需要动态增加功能时。
- 外观模式 (Facade)
- 意图:为子系统中的一组接口提供一个一致的界面,使子系统更易用。
- 使用场景:简化复杂系统的接口,提供统一的操作入口。
- 享元模式 (Flyweight)
- 意图:通过共享技术实现大量细粒度对象的高效支持。
- 使用场景:创建大量相似对象时,节省内存。
- 代理模式 (Proxy)
- 意图:为某个对象提供一个代理,以控制对该对象的访问。
- 使用场景:远程代理、虚拟代理和保护代理等。
行为型模式 (Behavioral Patterns)
- 责任链模式 (Chain of Responsibility)
- 意图:使多个对象有机会处理请求,从而避免请求的发送者和接收者之间的耦合。
- 使用场景:多个对象可以处理请求时,让请求在对象间传递。
- 命令模式 (Command)
- 意图:将请求封装成对象,以便使用不同的请求、队列或日志来参数化对象。
- 使用场景:需要支持撤销、排队或日志记录等功能。
- 解释器模式 (Interpreter)
- 意图:为语言创建解释器,用于解释该语言的语法和语句。
- 使用场景:设计一个特定领域语言的解释器或执行器。
- 迭代器模式 (Iterator)
- 意图:提供一种方法顺序访问一个集合对象的元素,而不暴露其内部表示。
- 使用场景:遍历集合的不同实现,提供统一的访问接口。
- 中介者模式 (Mediator)
- 意图:用一个中介对象封装一系列对象之间的交互,使对象不必显式引用彼此,降低耦合。
- 使用场景:系统中对象之间存在复杂交互时,使用中介者来简化关系。
- 备忘录模式 (Memento)
- 意图:在不破坏封装的前提下,捕获和恢复对象的内部状态。
- 使用场景:需要保存对象的历史状态,且以后可能恢复。
- 观察者模式 (Observer)
- 意图:定义对象间的一种一对多的依赖关系,状态改变时自动通知所有依赖的对象。
- 使用场景:事件驱动的系统、发布-订阅模型。
- 状态模式 (State)
- 意图:允许对象在其内部状态发生改变时,改变它的行为。
- 使用场景:对象的行为依赖于状态,并且需要在运行时改变状态。
- 策略模式 (Strategy)
- 意图:定义一系列算法,将每个算法封装起来,并使它们可以互相替换。
- 使用场景:需要在运行时切换算法。
- 模板方法模式 (Template Method)
- 意图:定义算法的框架,将某些步骤延迟到子类。
- 使用场景:不同实现间存在共同步骤,但个别步骤不同时。
- 访问者模式 (Visitor)
- 意图:表示一个作用于某对象结构的操作,可在不更改对象类的情况下定义新操作。
- 使用场景:需要对一系列不同类型的对象执行操作,但又不想修改对象的类结构。
这些设计模式提供了应对不同软件设计问题的可复用解决方案,合理应用这些模式有助于提高系统的扩展性、可维护性和灵活性。
热门推荐
一妇婴保健院被网红打卡困扰,暴露公共资源管理难题
夏季被子选购指南:夏凉被还是空调被?材质性能全解析
2025含糖量低的十大食物(最新低糖量食物分享)
这些食物发芽后营养价值飙升 前提是你得这样做
羽绒被PK羊毛被,谁更适合你的冬季?
王茜领衔,《重案六组第四部》主演阵容揭秘
沪宁铁路全线通车115周年,见证中国铁路发展史
氯化石蜡:智能家居的安全守护神
“不逆诈”:孔子教你现代人际交往的智慧
常州二院延陵院区高效就医指南:从挂号到取药全流程解析
秦岭大熊猫繁育研究基地:生态建筑设计的创新与实践
新车火爆、二手冷清,二手新能源车被“卷坏了”
混动汽车摇号政策全解析:深圳、广州等城市最新规定
快手AI短剧《山海奇镜之劈波斩浪》引爆创意产业
富士山摄影攻略:河口湖倒影、忍野八海等5大美景
富士山冬季限定:河口湖雪景与浅间神社绝美打卡地
名古屋出发看富士山:两大网红景点游玩全攻略
中大团队研发肝癌靶向免疫联合疗法,生存期达10个月
韩国坠机黑匣子谜团:关键4分钟数据缺失,事故真相扑朔迷离
专家详解:复发性口腔溃疡为何反复发作,如何科学防治
制造业如何利用双控体系防止机械伤害?
宝宝咳嗽别大意,这些症状需立即就医
专家提醒:儿童使用川贝枇杷膏需遵医嘱
国家卫健委:流感用药需遵医嘱,儿童用药要谨慎
全国病毒学青年学者研讨会在重庆召开,聚焦抗病毒新药研发与乙肝治疗突破
吉隆坡槟城旅游攻略:现代都市与文化遗产的完美融合
世界顶级潜水地、地质奇观、白沙滩:玩转马来西亚三大海岛
秋冬季节如何搭配白色丝袜?这些搭配技巧让你穿出时尚感
兴福电子科创板IPO在即,净利润下滑超三成
成都动物园:和孩子一起发现动物的趣味世界