创建者模式将一个复杂对象的创建和他的表示分离,使用同样的创建过程可以创建不同的表示。那么,创建者模式都有什么优缺点?和工厂模式都有哪些区别?接下来一起随小编来看看吧!
创建者模式的优点:
封装性好。将复杂对象的创建过程封装,调用者不需要关心创建的过程。
拓展性好。如果有新的产品,只需要增加一个产品创建者,而不用修改已有的代码。
创建者模式的缺点:
虽然利用创建者模式可以创建出不同类型的产品,但是如果产品之间的差异巨大,则需要编写多个创建者类才能实现,如果这是结合工厂模式更好。
创建者模式和工厂模式的区别:
可以发现,创建者模式和工厂模式很相似,都是用来创建对象实例,区别是创建者模式多了个导演类。
与工厂模式相比,创建者模式主要用来创建比较复杂的对象。因为创建的对象比较复杂,所以需要独立出一个单独的类,即 导演类,来负责这个创建的流程;而工厂类则直接创建对象。
适用场景:
主要用于创建一些比较复杂的对象,这些对象的内部构建顺序通常比较稳定,但是对象构造的参数/属性会有区别。所以,如果一个对象的创建比较复杂,使用工厂模式;如果一个对象的创建特别负责,使用创建者模式。