【愚公系列】软考中级-软件设计师 050-面向对象技术(设计模式-创建型)

举报
愚公搬代码 发表于 2024/02/24 17:46:52 2024/02/24
【摘要】 🏆 作者简介,愚公搬代码🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。🏆《博客内容...

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏


🚀前言

🔎1.设计模式概念

设计模式是在软件设计领域中,为解决常见问题而被反复使用、被广泛认可的一种设计思想。它是一种经过实践验证的,被认为是最佳解决方案的经验总结,可以帮助开发人员快速高效地解决软件设计中的一些固有问题。

每一个设计模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便的复用成功的设计和体系结构。

设计模式具有以下特点:

特点 描述
在特定情况下被使用 设计模式并不是适用于所有场景的通用解决方案,而是在特定问题领域中被广泛使用的解决方案。
涉及多种设计元素 设计模式涉及到多个设计元素,包括类,对象,接口,继承,组合等等。
以面向对象方式进行设计 设计模式主要是针对面向对象编程而提出的,尽管也可以用于其他编程范式。
遵循设计原则 设计模式往往遵循一些设计原则,如单一职责原则、开闭原则、里氏替换原则等,以提高设计的可维护性、可扩展性和可重用性。

🔎2.设计模式分类

设计模式的四个基本要素:模式名称、问题(应该在何时使用模式)、解决方案(设计的内容)、效果(模式应用的效果)。

分为三类,创建型模式主要是处理创建对象,结构型模式主要是处理类和对象的组合,行为型模式主要是描述类或者对象的交互行为,具体如下(红色粗体记忆关键字表示常考必须记住的):

在这里插入图片描述

类型 描述
架构模式 - 软件设计中的高层决策,如C/S结构
- 反映了开发软件系统过程中所作的基本设计决策
设计模式 - 描述了一个在我们周围不断重复发生的问题和其解决方案的核心
- 提供了相关问题的解决方案,使得人们可以更加简单方便地复用成功的设计和体系结构
- 包含四个基本要素:模式名称、问题(应该在何时使用模式)、解决方案(设计的内容)、效果(模式应用的效果)
惯用法 - 最低层的模式,关注软件系统的设计与实现
- 通过特定的编程语言描述构件与构件之间的关系
- 每种编程语言都有自己的惯用法,即语言的特定模式(如C++中的引用计数)

🚀一、设计模式-创建型

🔎1.工厂模式(Factory Pattern)

工厂模式就像是一家披萨店。你告诉披萨店你想要什么类型的披萨,它会根据你的需求为你制作披萨。在这里,披萨店就是一个工厂,披萨是工厂创建的产品。

举例说明:假设你想要定制一件特别款式的T恤,你可以去一家专门定制服装的工厂。你告诉工厂你需要一件红色的T恤,上面要印有你喜欢的图案。工厂根据你的需求,选择红色的布料,根据你提供的图案进行印花,然后制作出一件定制的T恤。在这个例子中,工厂根据你的需求创建了一件特定款式的产品(定制的T恤),实现了工厂模式。你作为客户只需要提供需求,而无需关心具体的制作过程和细节。

🔎2.单例模式(Singleton Pattern)

单例模式确保一个类只有一个实例,就像一座城市只有一个市长。无论多少人住在这座城市,市长都是唯一的。在生活中,操作系统的任务管理器就是一个单例模式的应用。无论打开多少个任务管理器窗口,它们都指向同一个任务管理器实例。

例如,假设有一个名为"City"的类代表一座城市,其中有一个名为"Mayor"的静态变量用于保存唯一的市长实例。当创建第一个City实例时,该实例的Mayor变量将被设置为一个新的Mayor实例。当尝试创建更多的City实例时,它们将都引用到同一个Mayor实例。

在操作系统中,任务管理器是一个单例模式的应用。无论打开多少个任务管理器窗口,它们都指向同一个任务管理器实例。这意味着无论通过哪个窗口关闭一个进程或查看系统信息,都是在同一个任务管理器实例中进行操作。这种设计能够确保操作系统中的任务管理器始终是唯一和一致的。

🔎3.建造者模式(Builder Pattern)

建造者模式类似于建造一座房子。你可以选择房子的类型、颜色、材料等,并由建筑工人按照你的选择来构建房子。

以工程师为例,假设有一个木制房子构建者和一个砖瓦房子构建者。工程师的任务是根据客户的要求建造不同类型的房子。

例如,客户A需要一座木制房子。工程师会选择木制房子构建者,并使用该构建者的方法来逐步构建木制房子。这包括设置木质墙壁、建造屋顶和安装窗户。

另一个例子是客户B需要一座砖瓦房子。工程师会选择砖瓦房子构建者,并使用该构建者的方法来逐步构建砖瓦房子。这包括砖瓦墙壁、瓦片屋顶和大窗户。

通过使用建造者模式,工程师可以根据客户的需求逐步构建不同类型的房子,而不必亲自处理所有细节。这使得构建过程灵活且可维护,同时允许创建不同风格和材质的房子。

🔎4.原型模式(Prototype Pattern)

原型模式是通过复制现有对象来创建新对象的设计模式。这类似于使用3D打印机复制一件艺术品或零件,可以从一个原型创建出多个相同的物品。

生活中的一个例子是在电影制作中。制片人可以利用原型模式来复制特效道具,这样在不同的场景中就可以使用多个相同的道具。例如,如果电影中需要多个相同的怪物模型,制片人可以使用原型模式来复制并创建多个相同的怪物模型。这样可以节省时间和资源,同时确保每个怪物模型在外观和细节上都保持一致。

在这里插入图片描述


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。