23种设计模式入门:从创建型到行为型模式详解
创作时间:
作者:
@小白创作中心
23种设计模式入门:从创建型到行为型模式详解
引用
CSDN
1.
https://blog.csdn.net/be_racle/article/details/143833023
设计模式是软件开发中的重要概念,它们为解决常见问题提供了经过验证的解决方案。本文将介绍23种常见的设计模式,包括创建型模式、结构型模式和行为型模式,帮助读者快速了解这些模式的基本概念和应用场景。
设计模式是在软件设计中反复出现的问题的通用解决方案。它们是经过多次验证和应用的指导原则,旨在帮助软件开发人员解决特定类型的问题,提高代码的可维护性、可扩展性和重用性。
设计模式是一种抽象化的思维方式,可以帮助开发人员更好地组织和设计他们的代码。它们提供了一种通用的框架,可以用于解决各种不同的软件设计问题。设计模式不是完整的代码,而是一种描述问题和解决方案之间关系的模板。
设计模式不是一成不变的法则,而是根据不同的问题和情境来决定是否使用以及如何使用。了解和应用设计模式可以帮助开发人员更好地组织代码,提高代码的可读性和可维护性,同时也有助于促进团队之间的合作和沟通。
1. 创建型模式
序号 | 解释 |
---|---|
1 | 工厂模式( Factory Pattern )是 Java 中最常用的设计模式之一,它提供了一种创建对象的方式,使得创建对象的过程与使用对象的过程分离。 |
2 | 抽象工厂模式( Abstract Factory Pattern )是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 |
3 | 单例模式( Singleton Pattern )是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 |
4 | 建造者模式( Builder )是一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程与其表示相分离,从而可以创建具有不同表示形式的对象。 |
5 | 原型模式( Prototype Pattern )是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式之一。 |
2. 结构型模式
关注类和对象的组合,目的是使得结构更加清晰和高效。
序号 | 解释 |
---|---|
1 | 适配器模式( Adapter Pattern )是一种结构型设计模式,其主要目的是通过适配器将一个接口转换为客户端所期望的另一个接口。这个模式允许你为现有类增加新功能,或者让它们之间兼容,而无需修改其源代码。 |
2 | 装饰器模式( Decorator Pattern )是一种结构型设计模式,允许在运行时动态地为对象添加行为和职责,而不需要修改对象的结构。通过这种方式,可以在不使用子类的情况下扩展对象的功能,提供了一种灵活的替代继承的方案。 |
3 | 代理模式( Proxy Pattern )是一种结构型设计模式,它允许你提供一个代理对象来控制对某个对象的访问。代理对象可以执行一些额外的操作,如权限检查、日志记录、延迟初始化等,然后再将请求转发给实际的对象。 |
4 | 外观模式( Facade Pattern )是一种设计模式,用于为复杂的子系统提供一个简化的接口。它的主要目的是减少客户端与子系统之间的依赖关系,使客户端代码更容易理解和使用。 |
5 | 桥接模式( Bridge Pattern )是设计模式中的一种结构型模式,主要用于将抽象部分与实现部分分离,使它们可以独立变化。这种模式在多种场景下非常有用,尤其是在需要将抽象和实现解耦的情况下。 |
6 | 组合模式( Composite Pattern )是一种设计模式,用于处理树形结构的数据。它的主要目的是将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 |
7 | 享元模式( Flyweight Pattern )是一种用于性能优化的设计模式,主要目的是通过共享已经存在的对象来减少内存使用和提高性能。简单来说,享元模式通过共享对象来减少对象的数量,从而节省内存。 |
3. 行为型模式
关注对象之间的交互和责任分配,目的是使得行为更加灵活和可扩展。
模式 | 解释 |
---|---|
1 | 模板方法模式( Template Method )是一种行为设计模式,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些特定步骤。 |
2 | 观察者模式( Observer )是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象(称为“主题”或“发布者”)的状态发生变化时,所有依赖于它的对象(称为“观察者”或“订阅者”)都会自动得到通知并更新。 |
3 | 策略模式( Strategy )是一种行为设计模式,它使你能在运行时改变对象的行为。 |
4 | 命令模式( Command )是一种行为设计模式,它将请求封装成一个对象,从而使你能够用不同的请求、队列或者请求日志来参数化其他对象。命令模式也支持可撤销的操作。 |
5 | 责任链模式( Chain of Responsibility )是一种行为设计模式,它允许你将请求沿着处理者链进行传递,直到有一个处理者能够处理该请求。每个处理者都可以决定是否处理该请求,或者将请求传递给下一个处理者。这样可以将请求的处理逻辑分散到多个处理者中,而不是集中在一个地方。 |
6 | 状态模式( State )是一种行为设计模式,它允许一个对象在其内部状态改变时改变其行为。简单来说,就是让对象的行为随着其状态的变化而变化。这样可以避免大量的条件判断语句,使代码更加清晰和易于维护。 |
7 | 备忘录模式( Memento )是一种行为设计模式,它允许你在不破坏封装性的前提下,捕获一个对象的内部状态,并在之后恢复为之前的状态。简单来说,就是保存一个对象的“快照”,以便将来可以恢复到这个状态。 |
8 | 中介者模式( Mediator )是一种行为设计模式,它通过一个中介对象来封装一系列对象之间的交互,使得这些对象不再直接相互依赖,而是通过中介者进行通信。这样可以减少对象之间的耦合,使系统的结构更加清晰和易于维护。 |
9 | 解释器模式( Interpreter )是一种行为设计模式,它主要用于处理语言、表达式或命令的解析和执行。这种模式定义了如何构建一个解释器来解析特定的语句或命令,并执行相应的操作。 |
10 | 访问者模式( Visitor )是一种行为设计模式,它允许你在不改变数据结构的情况下,为数据结构中的元素添加新的操作。这种模式特别适用于数据结构相对稳定,但需要在数据结构上定义很多操作的场景。 |
11 | 依赖注入( Dependency Injection )是一种设计模式,用于实现控制反转(Inversion of Control , IoC )。它的主要目的是减少代码之间的耦合,提高代码的可测试性和可维护性。通过依赖注入,对象的依赖关系由外部提供,而不是由对象自己创建或查找。 |
热门推荐
武汉樱花观赏攻略2025(赏樱景点地图+最佳观赏时间)
扇子的历史起源与早期发展
银行的智能存款产品靠谱吗?
142857,真的那么神秘吗?
抑郁症自我测试题是什么
单元测试,集成测试,系统测试的区别是什么
每天使用的厨房必须好好装修,附上装修攻略及材料选购指南
客厅餐厅一体化设计效果图赏析与灵感分享
脑机接口技术的未来与现状:Neuralink、机械手臂与视觉假体的突破
新房价格连续两月上涨 大连楼市“升温”
如何正确安装窗式空调并保证使用效果?安装后如何进行维护?
中国历史朝代更替简史:从夏朝到清朝的历史脉络
《骑马与砍杀2》攻城战攻略:从准备到胜利的全方位指南
注册健康管理公司经营范围:法律依据|管理服务|健康咨询
2024年高考网络安全与执法专业未来就业前景分析
服务器加速器:类型、原理与应用场景全解析
加强人员密集场所动火作业和建筑保温材料安全管理
每天只需10分钟,八段锦的科学健身密码
电动汽车市场细分竞争分析
项目目标及预期成果如何设定
使用CFD仿真进行阀门性能分析:第一部分
个体户营业执照营业额或营业收入:探究其税收政策及合规管理
全面监控畜群健康:牛群定位系统与牛项圈的智能应用
温和的李彦宏与百度的黄昏:AI时代的生死决战?
重视起来!这几项指标评估肝硬化治疗效果!
英文品牌商标名字汉译的方法及其应用
草酸钙肾结石不能吃什么食物
职业生涯最佳赛季!凯伦·威尔逊能在玉山再下一城吗?
探究英国会计知识与中国会计知识的差异
清明节:传承千年的朴实与高贵