自学内容网 自学内容网

创建者模式之【各个模式的对比】

创建者模式对比

工厂方法模式VS建造者模式

工厂方法模式注重的是整体对象的创建方式;而建造者模式注重的是部件构建的过程,意在通过一步一步地精确构造创建出一个复杂的对象。

我们举个简单例子来说明两者的差异,如要制造一个超人,如果使用工厂方法模式,直接产生出来的就是一个力大无穷、能够飞翔、内裤外穿的超人;而如果使用建造者模式,则需要组装手、头、脚、躯干等部分,然后再把内裤外穿,于是一个超人就诞生了。
如果还是不能理解,那就在看一个例子:

1.工厂方法模式 (Factory Method Pattern)
想象一下你去一家玩具店买玩具车。这家玩具店有一个神奇的机器,你只需要告诉它你要什么样的车(比如红色的小轿车),然后机器就会自动为你制造一辆完全符合要求的车。这就是工厂方法模式的核心思想——你不需要知道制造过程的具体细节,只需要知道你想要什么样的产品,然后由工厂(或者机器)来负责创建这个产品。

  1. 建造者模式 (Builder Pattern)
    现在假设你想定制一款独一无二的模型车。你来到一家专门定制模型车的工作室。工作室的工匠会先询问你的需求(比如车身颜色、轮子类型、内饰风格等),然后一步步地按照你的要求来组装这辆车。最终,你会得到一辆完全符合你心意的模型车。这就是建造者模式的核心思想——逐步构建一个复杂对象,每一步都可以根据具体的需求来进行调整。

抽象工厂模式VS建造者模式

抽象工厂模式实现对产品家族的创建,一个产品家族是这样的一系列产品:具有不同分类维度的产品组合,采用抽象工厂模式则是不需要关心构建过程,只关心什么产品由什么工厂生产即可。

建造者模式则是要求按照指定的蓝图建造产品,它的主要目的是通过组装零配件而产生一个新产品。

如果将抽象工厂模式看成汽车配件生产工厂,生产一个产品族的产品,那么建造者模式就是一个汽车组装工厂,通过对部件的组装可以返回一辆完整的汽车。

  1. 抽象工厂模式 (Abstract Factory Pattern)
    假设你是一家大型玩具公司的产品经理,你需要为不同的市场提供一系列配套的玩具。比如,为欧洲市场提供一套包括红色小轿车、蓝色卡车和绿色公交车的玩具套装,为亚洲市场提供一套包括黄色小轿车、白色卡车和黑色公交车的玩具套装。每套玩具中的车辆都是一起设计和生产的,确保它们之间有良好的协调性。这就是抽象工厂模式的核心思想——创建一组相关或依赖的对象,这些对象作为一个整体来工作。

总结:
工厂方法模式:直接创建一个完整的对象,你只需要指定你想要什么类型的对象。
建造者模式:逐步构建一个复杂的对象,每一步都可以根据具体需求进行调整。
抽象工厂模式:创建一组相关的对象,这些对象作为一个整体来工作。
希望这样的解释能帮助你更好地理解这三种设计模式的区别!


原文地址:https://blog.csdn.net/2301_79602614/article/details/143640263

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!