概念说明
大话设计模式
大话设计模式主要分为三部分,第一部分是创建型模式,第二部分是结构型模式,第三部分是行为型模式。至于为什么要分为这三部分,我的理解是创建型是用于创建对象的而结构型是发生在类与类之间的关系是比较宏观的,比如说组合或者交互。行为型是一个微观的关系主要体现在对象与对象之间和方法与方法之间。接下来说一说创建型模式。
创建型模式
创建型模式是隐藏了类的实例是如何被创建的和放在一起的,整个系统关于这些对象所知道的是由抽象类所定义的接口。简单来说,创建型模式是把具体的实现给封装起来,对外只提供一个接口。创建型模式包括:建造者模式、工厂方法、抽象工厂、原型模式和单例模式。
各模式详解
建造者模式
好处:将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。通过链式调用或者步骤式调用,提供了更好的可读性和可维护性。
使用场景:当对象的构建过程比较复杂,需要多个步骤或者有多种表示时,可以使用建造者模式。例如,创建一个包含多个组件的表单、游戏角色的创建等。
工厂方法
好处:将对象的创建与使用分离,客户端代码通过工厂接口来创建对象,而无需关心具体的实现类。增加新的产品时,只需实现工厂接口即可,无需修改客户端代码。
使用场景:当需要创建复杂对象,或者对象的创建涉及到一些逻辑判断时,可以使用工厂方法模式。例如,图形绘制工具中的不同形状的创建。
抽象工厂
好处:提供一个接口来创建一系列相关或相互依赖的对象,而无需指定其具体类。客户端代码通过工厂接口来创建对象,从而实现了客户端代码与具体类的解耦。
使用场景:当需要创建一系列相关的产品对象,且这些产品对象之间有一定的约束关系时,可以使用抽象工厂模式。例如,GUI工具包中的不同主题风格的创建。
原型模式
好处:通过复制现有对象来创建新对象,避免了创建子类的情况下的对象创建过程。提供了一种动态创建对象的方式,可以根据需要创建多个相似对象。
使用场景:当需要创建多个相似的对象,且对象的创建过程比较复杂时,可以使用原型模式。例如,电子邮件的草稿功能、游戏中的敌人克隆等。
单例模式
好处:确保一个类只有一个实例,节省内存空间,提供全局访问点,避免多个实例之间的数据不一致问题。
使用场景:需要全局访问点,共享资源,或者需要限制对象的创建数量时可以使用单例模式。例如,数据库连接池、线程池等。
其他模式
结构型模式:https://blog.csdn.net/weixin_45490198/article/details/131432715
行为型模式:https://blog.csdn.net/weixin_45490198/article/details/131433336
总结提升
这些创建型设计模式都有各自的优势和适用场景。正确地选择和使用适合的设计模式可以提高代码的可维护性、可读性和可测试性,并帮助我们构建更好的软件系统。
总的来说,创建型设计模式提供了一种灵活、可复用和可扩展的方式来创建对象。它们可以帮助我们隐藏对象的创建细节,提供全局访问点,解耦对象的创建与使用,以及实现动态创建对象的能力。正确地应用这些模式可以提高代码的可维护性、可读性和可测试性,并帮助我们构建更好的软件系统。