🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
文章目录
🚀前言
🔎1.软件开发中的模式
在软件开发中,模式是帮助开发人员解决常见问题并提高开发效率的重要工具。模式可以分为架构模式、设计模式和惯用法三种类型。
🦋1.1 架构模式
- 定义:软件设计中的高层决策,涉及软件系统的整体结构和全局策略。
- 特点:反映了开发软件系统过程中所作的基本设计决策。
- 示例:C/S(Client/Server)结构、微服务架构、MVC(Model-View-Controller)架构。
🦋1.2 设计模式
- 定义:描述了在我们周围不断重复发生的问题,以及该问题的解决方案的核心。设计模式提供了相关问题的解决方案,使得人们可以简单方便地复用成功的设计和体系结构。
- 四个基本要素:
- 模式名称:描述模式的简洁名称,便于记忆和讨论。
- 问题:描述应在何时使用该模式,解决特定情境中的问题。
- 解决方案:提供具体的设计内容,包括类和对象的结构及其交互方式。
- 效果:描述模式应用的结果和影响,阐明其优缺点。
- 示例:单例模式、工厂方法模式、观察者模式、策略模式。
🦋1.3 惯用法
- 定义:最低层的模式,关注软件系统的设计与实现,通过特定的程序设计语言描述构件与构件之间的关系。
- 特点:每种编程语言都有其特定的模式,即语言的惯用法。
- 示例:引用计数是C++语言中的一种惯用法,Python中的上下文管理(with语句)。
🦋1.4 总结
- 架构模式:高层决策,涉及系统的整体结构(如C/S结构)。
- 设计模式:中层决策,提供解决常见问题的方案,包含模式名称、问题、解决方案和效果四个基本要素。
- 惯用法:低层决策,关注特定编程语言中的实现细节和最佳实践。
理解并运用这些模式,可以帮助开发人员提高软件设计和实现的质量与效率。
🔎2.设计模式
设计模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。通过使用设计模式,可以避免重复劳动,简化和方便地复用成功的设计和体系结构。
🦋2.1 设计模式的四个基本要素
- 模式名称:描述模式的简洁名称,便于记忆和讨论。
- 问题:描述应在何时使用该模式,解决特定情境中的问题。
- 解决方案:提供具体的设计内容,包括类和对象的结构及其交互方式。
- 效果:描述模式应用的结果和影响,阐明其优缺点。
🦋2.2 设计模式的分类
设计模式分为三类:创建型模式、结构型模式和行为型模式。
-
创建型模式:
- 定义:主要处理对象的创建,避免在代码中显式地实例化对象,从而提高代码的灵活性和复用性。
- 常见模式:工厂方法、抽象工厂、单例、建造者、原型。
- 关键字:对象创建。
-
结构型模式:
- 定义:主要处理类和对象的组合,确保在不同系统部件之间建立灵活和高效的结构。
- 常见模式:适配器、桥接、组合、装饰器、外观、享元、代理。
- 关键字:类和对象组合。
-
行为型模式:
- 定义:主要描述类或对象的交互行为,关注对象之间的职责分配和通信。
- 常见模式:责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者。
- 关键字:交互行为。
设计模式通过提供解决方案,使得人们能够简单方便地复用成功的设计和体系结构。它们主要分为创建型、结构型和行为型三类,分别处理对象的创建、类和对象的组合以及类或对象的交互行为。每个设计模式包含四个基本要素:模式名称、问题、解决方案和效果。理解并记住这些模式可以有效提高软件开发的效率和质量。
🚀一、创建型设计模式
🔎1.工厂模式(Factory Pattern)
- 定义:工厂模式就像是一家披萨店。你告诉披萨店你想要什么类型的披萨,它会根据你的需求为你制作披萨。在这里,披萨店就是一个工厂,披萨是工厂创建的产品。
- 生活中的例子:购物时使用工厂模式,告诉工厂你需要哪种类型的衣服,然后工厂根据你的需求制作并提供相应的衣服。
- 关键点:通过一个接口或基类来创建对象,而不是通过new关键字直接实例化对象,从而实现了创建对象的灵活性和可扩展性。
🔎2.单例模式(Singleton Pattern)
- 定义:单例模式确保一个类只有一个实例。这就像一座城市只有一个市长,无论多少人住在这座城市,市长都是唯一的。
- 生活中的例子:操作系统的任务管理器就是一个单例模式的应用。无论打开多少个任务管理器窗口,它们都指向同一个任务管理器实例。
- 关键点:通过控制实例化过程,确保一个类只有一个实例存在,通常通过一个静态方法或属性来访问这个实例。
🔎3. 建造者模式(Builder Pattern)
- 定义:建造者模式像是建造一座房子。你可以选择房子的类型、颜色、材料等,并由建筑工人按照你的选择来构建房子。通过建造者模式,可以逐步构建复杂对象,而无需亲自处理所有细节。
- 生活中的例子:假设你是一位工程师,有一个木制房子构建者和一个砖瓦房子构建者。客户A需要一座木制房子,你将选择木制房子构建者,然后使用它的方法来逐步构建木制房子,包括设置木质墙壁、建造屋顶和安装窗户。客户B需要一座砖瓦房子,你将选择砖瓦房子构建者,并使用它的方法来逐步构建砖瓦房子,包括砖瓦墙壁、瓦片屋顶和大窗户。
- 关键点:建造者模式使得构建过程灵活且可维护,允许创建不同风格和材质的对象。适用于需要逐步构建复杂对象的场景。
🔎4.原型模式(Prototype Pattern)
- 定义:原型模式通过复制现有对象来创建新对象。这就像使用3D打印机复制一件艺术品或零件,从一个原型创建多个相同的物品。
- 生活中的例子:在电影制作中,制作人可以使用原型模式来复制特效道具,以便在不同场景中使用多个相同的道具。
- 关键点:原型模式通过克隆现有对象来创建新对象,减少了对象创建的复杂性和成本。适用于创建对象代价较高或过程复杂的场景。
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”