深入解析!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)
- 意图:表示一个作用于某对象结构的操作,可在不更改对象类的情况下定义新操作。
- 使用场景:需要对一系列不同类型的对象执行操作,但又不想修改对象的类结构。
这些设计模式提供了应对不同软件设计问题的可复用解决方案,合理应用这些模式有助于提高系统的扩展性、可维护性和灵活性。
热门推荐
手机发热解决方法:降低负荷、休息降温、环境散热、关闭推送和优化设置
专家解读:中药外敷治疗百病是真的吗?
生石花怎么养
救救蔫掉的生石花(生石花的养护技巧与问题解决方法)
九里香长什么样最美 图片大全
鼻子堵塞太难受?试试这些小妙招,10秒快速通气!
退役军人的军龄可以转为“视同缴费年限”吗?这3点需要注意!
元素周期表中最奇特和最被低估的元素——铋
中国铋行业市场现状及趋势分析:铋应用领域广,未来发展前景广阔
由“小散弱”到“强优专”的华丽蜕变——山钢集团旗下莱钢集团改制单位改革发展纪实
九年级化学元素周期表口诀,轻松记忆的秘籍
英镑:英国法定货币及其在全球金融市场中的重要作用
维修基金标准:如何计算?先验房还是先交维修基金?
计算机的用电安全需要通过哪些措施保障
公积金贷款100万20年利息计算:等额本息 vs 等额本金
金庸笔下的十大美女:从外貌到品格的完美诠释
几处细节,能看清男人对你是专情,还是虚情假意
男人真爱的表现特征,言行一致关心陪伴尊重理解。
新媒体营销:策略、趋势、实践与未来展望
原神70%收入来自海外?米哈游殷春波:游戏出海要将中国IP打造成世界IP
全日制研究生和非全日制的区别有哪些?哪个好考?
从植脂末到冰勃朗:奶茶行业的健康转型之路
南方科技大学:创新驱动与科研突破,助力建设一流研究型大学
陌上花开万物生,最美是春分
一般床头挂几个葫芦好?床头朝向的四大禁忌
一般床头挂几个葫芦好?床头朝向的四大禁忌
电力自动化设备的安装和调试步骤有哪些?
鳕鱼胶和燕窝哪个效果好,两者能否同食及胶原蛋白对比
铁树黄叶救治指南:从土壤分析到光照调节,全面解析挽救技巧策略
如何启动医疗事故鉴定流程?