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)。它的主要目的是减少代码之间的耦合,提高代码的可测试性和可维护性。通过依赖注入,对象的依赖关系由外部提供,而不是由对象自己创建或查找。 |
热门推荐
浙江龙游六春湖:万亩杜鹃花海,四季皆是美景
浙江六春湖现绝美雾凇,打造生态保护区里的“小雪谷”
从坐诊到品牌:口腔医疗机构转型升级路径全解析
每坐30分钟就该动一动,4个动作远离膝关节疼痛
研究证实:久坐比跑步更伤膝盖,专家教你科学运动
2025春节烟花爆竹政策有变!这些安全要点请收好
春节放鞭炮,防火攻略get√
春节安全指南:让欢庆与安全同行
跑步爱好者必看:心率控制秘籍大公开!
何立人教你中医调理心率异常
滤波技术:提纯信号、提取信息的关键技术
糖尿病人防止餐后血糖飙升的6种方法
剁鹅肉:几代潮汕人的餐桌记忆
国航儿童选座指南:安全舒适飞行,在线预订与特别服务全解析
寻美食万千,《我的美食向导》开启风味探索之旅
京广高铁推出静音车厢,北京至郑州最快2小时可达
春运带娃乘机指南:这些规定家长要知道
一岁宝宝乘机指南:购票、准备与注意事项全攻略
春节加班工资怎么算?一文读懂发放标准和维权途径
2024春节发薪指南:假期遇发薪日应提前支付
秋冬季节老年人补充蛋白质指南:蛋白肽更易吸收
上海至信阳自驾攻略:950公里三城风景尽览
轮胎、刹车、油液全检查,自驾归来这样保养爱车
东坡肉:苏东坡改良自把子肉的传世佳肴,慢火细炖见真章
红烧肉营养解析:高热量美味如何健康享用
五步教你做出完美红烧肉:色泽红亮,肥而不腻
告别坏心情,从写情感日记开始
登缥缈峰赏秋色,探林屋洞寻仙踪:鸳湖秋游全攻略
深圳5大周末休闲胜地:海景、摩天轮、古城全都有
世界最高玻璃观景台落户深圳,55秒电梯直达547.6米