【设计模式】建造者模式与工厂方法模式区别

工厂方法模式:

把一个类的实例化延迟到它的子类中,核心的工厂类不负责所有产品的创建,而是将具体创建的工作交给子类去做。让子类决定实例化哪一个类。即抽象工厂角色。

1.关注的属性的不同

2.基于接口和抽象类的


抽象工厂模式:
向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。既提供一个创建一系列相关或相互以来对象的接口,而无需指定它们的具体的类,这就是抽象工厂模式的用意。是工厂方法模式的进一步推广。

建造者模式: 

建造者模式将一个产品的内部表象和产品的生成过程分开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象

需要构造的对象非常复杂,而调用者不需要知道这些细节。例如模仿一个特殊的编译器,该编译器编译所有源代码,将其链接,然后压缩,最后加密。有多个类:Editor(编辑器)、Builder(构建器)、Compiler(编译器)、Linker(链接器)、Compressor(压缩器)、Encryptor(加密机)

建造模式的关键是导演角色,这个角色掌握了零件对象的状态和产品的整体组装蓝图。没有了这个角色,建造模式就不是建造模式。当然,导演角色可以同时持有几种蓝图,按照需要给出完全不同的组装结果。

1.是关注的行为的不同 

2.基于抽象类


建造者模式最主要功能是基本方法的调用顺序安排,也就是这些基本方法已经实现了;而工厂方法则重点是创建,你要什么对象我创造一个对象出来,组装顺序则不是他关心的。





    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值