前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】软考中级-软件设计师 050-面向对象技术(设计模式-创建型)

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

原创
作者头像
愚公搬代码
发布2024-05-02 18:28:42
940
发布2024-05-02 18:28:42
举报

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,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打印机复制一件艺术品或零件,可以从一个原型创建出多个相同的物品。

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

在这里插入图片描述
在这里插入图片描述

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀前言
    • 🔎1.设计模式概念
      • 🔎2.设计模式分类
      • 🚀一、设计模式-创建型
        • 🔎1.工厂模式(Factory Pattern)
          • 🔎2.单例模式(Singleton Pattern)
            • 🔎3.建造者模式(Builder Pattern)
              • 🔎4.原型模式(Prototype Pattern)
              相关产品与服务
              云开发 CloudBase
              云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档