设计模式之创建型模式

简介: 设计模式之创建型模式

概念说明

大话设计模式

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

创建型模式

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

各模式详解

建造者模式

91d4593e18af4e1ea12794504809ba85.png

好处:将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。通过链式调用或者步骤式调用,提供了更好的可读性和可维护性。

使用场景:当对象的构建过程比较复杂,需要多个步骤或者有多种表示时,可以使用建造者模式。例如,创建一个包含多个组件的表单、游戏角色的创建等。

工厂方法

3a207711901c4c7ea966ea8e87640fe2.png

好处:将对象的创建与使用分离,客户端代码通过工厂接口来创建对象,而无需关心具体的实现类。增加新的产品时,只需实现工厂接口即可,无需修改客户端代码。

使用场景:当需要创建复杂对象,或者对象的创建涉及到一些逻辑判断时,可以使用工厂方法模式。例如,图形绘制工具中的不同形状的创建。

抽象工厂

c43f4bedec1449deb6aa0337d08c57b9.png

好处:提供一个接口来创建一系列相关或相互依赖的对象,而无需指定其具体类。客户端代码通过工厂接口来创建对象,从而实现了客户端代码与具体类的解耦。

使用场景:当需要创建一系列相关的产品对象,且这些产品对象之间有一定的约束关系时,可以使用抽象工厂模式。例如,GUI工具包中的不同主题风格的创建。

原型模式

9bccf9fa2fdf4dc78ece9d7e84b7d0f0.png

好处:通过复制现有对象来创建新对象,避免了创建子类的情况下的对象创建过程。提供了一种动态创建对象的方式,可以根据需要创建多个相似对象。

使用场景:当需要创建多个相似的对象,且对象的创建过程比较复杂时,可以使用原型模式。例如,电子邮件的草稿功能、游戏中的敌人克隆等。

单例模式

cca3414224db459ea8243723568ad655.png

好处:确保一个类只有一个实例,节省内存空间,提供全局访问点,避免多个实例之间的数据不一致问题。

使用场景:需要全局访问点,共享资源,或者需要限制对象的创建数量时可以使用单例模式。例如,数据库连接池、线程池等。

其他模式

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

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

总结提升

 这些创建型设计模式都有各自的优势和适用场景。正确地选择和使用适合的设计模式可以提高代码的可维护性、可读性和可测试性,并帮助我们构建更好的软件系统。

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


相关文章
|
3月前
|
设计模式 存储 负载均衡
【五】设计模式~~~创建型模式~~~单例模式(Java)
文章详细介绍了单例模式(Singleton Pattern),这是一种确保一个类只有一个实例,并提供全局访问点的设计模式。文中通过Windows任务管理器的例子阐述了单例模式的动机,解释了如何通过私有构造函数、静态私有成员变量和公有静态方法实现单例模式。接着,通过负载均衡器的案例展示了单例模式的应用,并讨论了单例模式的优点、缺点以及适用场景。最后,文章还探讨了饿汉式和懒汉式单例的实现方式及其比较。
【五】设计模式~~~创建型模式~~~单例模式(Java)
|
3月前
|
设计模式 XML 存储
【三】设计模式~~~创建型模式~~~抽象工厂模式(Java)
文章详细介绍了抽象工厂模式,这是一种创建型设计模式,用于提供一个接口以创建一系列相关或相互依赖的对象,而不指定它们具体的类。通过代码示例和结构图,文章展示了抽象工厂模式的动机、定义、结构、优点、缺点以及适用场景,并探讨了如何通过配置文件和反射机制实现工厂的动态创建。
【三】设计模式~~~创建型模式~~~抽象工厂模式(Java)
|
3月前
|
设计模式 XML 存储
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)
文章详细介绍了工厂方法模式(Factory Method Pattern),这是一种创建型设计模式,用于将对象的创建过程委托给多个工厂子类中的某一个,以实现对象创建的封装和扩展性。文章通过日志记录器的实例,展示了工厂方法模式的结构、角色、时序图、代码实现、优点、缺点以及适用环境,并探讨了如何通过配置文件和Java反射机制实现工厂的动态创建。
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)
|
3月前
|
设计模式 XML Java
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
文章详细介绍了简单工厂模式(Simple Factory Pattern),这是一种创建型设计模式,用于根据输入参数的不同返回不同类的实例,而客户端不需要知道具体类名。文章通过图表类的实例,展示了简单工厂模式的结构、时序图、代码实现、优缺点以及适用环境,并提供了Java代码示例和扩展应用,如通过配置文件读取参数来实现对象的创建。
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
|
3月前
|
设计模式 存储 XML
[设计模式]创建型模式-抽象工厂模式
[设计模式]创建型模式-抽象工厂模式
|
3月前
|
设计模式 测试技术 Go
[设计模式]创建型模式-简单工厂模式
[设计模式]创建型模式-简单工厂模式
|
3月前
|
设计模式 XML 存储
【四】设计模式~~~创建型模式~~~建造者模式(Java)
文章详细介绍了建造者模式(Builder Pattern),这是一种创建型设计模式,用于将复杂对象的构建与其表示分离,允许分步骤创建一个复杂的对象而无需指定其内部的具体构造细节。通过定义抽象建造者、具体建造者、指挥者和产品角色,建造者模式允许通过相同的构建过程创建不同的产品表示,提高了系统的灵活性和扩展性。
|
3月前
|
设计模式 安全 测试技术
[设计模式]创建型模式-单例模式
[设计模式]创建型模式-单例模式
|
5月前
|
设计模式 Java 编译器
设计模式——创建型模式(工厂,简单工厂,单例,建造者,原型)
设计模式——创建型模式(工厂,简单工厂,单例,建造者,原型)
|
6月前
|
设计模式 缓存 安全
设计模式 - 创建型模式_ 单例模式 Singleton Pattern
设计模式 - 创建型模式_ 单例模式 Singleton Pattern
78 0