设计模式 之 建造者模式(和久必分)
建造者模式也叫生成器模式
(2020-04-09 14:32记)
上篇写了模板模式的构造,既定顺序或者说既定的算法,我们放到抽象父类当中去。但是现实生活却不是这样的,因为“变化,一直都在”,就跟这个世界一样。充满着变化!
假设一个产品,按照模板模式,先调用A,再调用B,完事了。但是用户不想要了,先掉A 还是B 用户自己确定,你只需要把产品建造出来就可以!建造者模式,也叫生成器模式。其实有点像,把模板模式中的模板方法去掉,一般方法自由组合,以达到生产类的效果!
先看下概念:

看到后面一句,同样的构建过程可以创建不同的表示(就是创建不同的对象),你又要相同的构建过程,又要创建不同的对象,其实就是对产品类本身的方法封装不同的结构,或者说不同的算法。
首先,我们写一个产品类.

产品有两个方法,open start,但是客户说了,到底哪一个先调用,由我们自己定!
那么,我们这边为了规范,并不会直接把产品类提供出去,我们只提供产品的生成器,也叫建造器.
首先,我们定义Builder抽象类.

进行不同产品的builder


我们这里都封装好了,你要先开油门后开门都行,现在就差对方调用了。
builder是setpart部分组成后,然后需要一个对builder进行封装,也就是对产品对construct(回头看下概念,同样的构造过程,实现不同的表示,如果直接拿builder直接用,那就是与概念不符合)


最后看下效果:


模板模式是因为按照规定算法,把方法聚合在一起。
建造者模式是因为方法顺序,或者说产品生产出构造不一致,而把方法实现分开。
正所谓,合者必分,分者必合,好好拿捏,根据具体需求来实现。
浙公网安备 33010602011771号