设计模式之创建型模式

本文已收录于专栏
《设计模式》

概念说明

大话设计模式

  大话设计模式主要分为三部分,第一部分是创建型模式,第二部分是结构型模式,第三部分是行为型模式。至于为什么要分为这三部分,我的理解是创建型是用于创建对象的而结构型是发生在类与类之间的关系是比较宏观的,比如说组合或者交互。行为型是一个微观的关系主要体现在对象与对象之间和方法与方法之间。接下来说一说创建型模式。

创建型模式

  创建型模式是隐藏了类的实例是如何被创建的和放在一起的,整个系统关于这些对象所知道的是由抽象类所定义的接口。简单来说,创建型模式是把具体的实现给封装起来,对外只提供一个接口。创建型模式包括:建造者模式、工厂方法、抽象工厂、原型模式和单例模式。

各模式详解

建造者模式

在这里插入图片描述

  • 好处:将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。通过链式调用或者步骤式调用,提供了更好的可读性和可维护性。
  • 使用场景:当对象的构建过程比较复杂,需要多个步骤或者有多种表示时,可以使用建造者模式。例如,创建一个包含多个组件的表单、游戏角色的创建等。

工厂方法

在这里插入图片描述

  • 好处:将对象的创建与使用分离,客户端代码通过工厂接口来创建对象,而无需关心具体的实现类。增加新的产品时,只需实现工厂接口即可,无需修改客户端代码。
  • 使用场景:当需要创建复杂对象,或者对象的创建涉及到一些逻辑判断时,可以使用工厂方法模式。例如,图形绘制工具中的不同形状的创建。

抽象工厂

在这里插入图片描述

  • 好处:提供一个接口来创建一系列相关或相互依赖的对象,而无需指定其具体类。客户端代码通过工厂接口来创建对象,从而实现了客户端代码与具体类的解耦。
  • 使用场景:当需要创建一系列相关的产品对象,且这些产品对象之间有一定的约束关系时,可以使用抽象工厂模式。例如,GUI工具包中的不同主题风格的创建。

原型模式

在这里插入图片描述

  • 好处:通过复制现有对象来创建新对象,避免了创建子类的情况下的对象创建过程。提供了一种动态创建对象的方式,可以根据需要创建多个相似对象。
  • 使用场景:当需要创建多个相似的对象,且对象的创建过程比较复杂时,可以使用原型模式。例如,电子邮件的草稿功能、游戏中的敌人克隆等。

单例模式

在这里插入图片描述

  • 好处:确保一个类只有一个实例,节省内存空间,提供全局访问点,避免多个实例之间的数据不一致问题。
  • 使用场景:需要全局访问点,共享资源,或者需要限制对象的创建数量时可以使用单例模式。例如,数据库连接池、线程池等。

其他模式

结构型模式:https://blog.csdn.net/weixin_45490198/article/details/131432715
行为型模式:https://blog.csdn.net/weixin_45490198/article/details/131433336

总结提升

  这些创建型设计模式都有各自的优势和适用场景。正确地选择和使用适合的设计模式可以提高代码的可维护性、可读性和可测试性,并帮助我们构建更好的软件系统。
  总的来说,创建型设计模式提供了一种灵活、可复用和可扩展的方式来创建对象。它们可以帮助我们隐藏对象的创建细节,提供全局访问点,解耦对象的创建与使用,以及实现动态创建对象的能力。正确地应用这些模式可以提高代码的可维护性、可读性和可测试性,并帮助我们构建更好的软件系统。


🎯 此文章对你有用的话记得留言+点赞+收藏哦🎯
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武梓龙_Wzill

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值