今天我们来聊一聊设计模式的创建型第四种----建造者模式,这个模式和上回讲的原型模式同样应用很广泛。主要是四个主要的角色产品、抽象建造者、具体建造者和指挥者!说到建造,那么大家首先想到的肯定是建造房子这个场景,为了更贴切一些,我就用建造房子的例子来简单的聊一聊。废话不多说,下面看代码演示
创建一个房屋产品对象
创建一个抽象的建造者对象,供后续具体建造者(子类)来自定义业务的实现
以上创建了两个具体的房屋建造者,豪宅和普通房屋。分别实现了抽象建造者接口中的建造流程
创建一个房屋建造指挥者,你可以理解为工程师在指挥如何按步骤造出不同的房屋对象,相当于一个建造蓝图
经过测试就把房屋的具体建造流程给构造出来,最后返回一个房屋对象,建造模式就完整的呈现出来了!它的好处也是显而易见他对客户端屏蔽了底层的现实细节,而且可以将复杂的过程细化成多个步骤实现,每一个具体的建造者都是相互独立存在,后期的维护性与扩展型性都很好。
经过我上述的代码一系列实现,不知道大家有没有感觉到建造者模式和抽象工程模式有些许相似,同样都是一系列具体子类去实现一个抽象的接口,并进行一系列的处理流程!
但是这两个设计模式还是有很大不同的,抽象工厂模式首先他不需要关心实现流程,只需专门生产具体的产品由具体的工厂对象来生产即可,而建造者模式是必须按照一定的设计蓝图来实现,根据一系列步骤完成产品的生产。
最后,如果你觉得这篇文章写的还行,可以评论或转发给身边其他朋友哦,大家一起讨论学习,基友搭配,效率翻倍!