Builder模式
灵魂三问:
1,什么是建造者模式?
2,它有什么用?
3,怎么用?
什么是建造者模式?
建造者模式是从构件复杂物体时先考虑每个小物体的方式抽象而来的。
它有什么用?
通过使用建造者模式,建造者只需要规定复杂物体A的每个组成部分,并不需要实现。这些组成部分由Builder的子类去实现,这样建造者只需要关注如何把这些组件组合起来。通过使用这个模式,我们可以把一个复杂的问题划分为很多小问题,然后通过不同的饿子类可以有不同的饿实现,就可以建造出不同的事物。
怎么用?
假如我们要构建一份文档,这个文档:
- 含有一个标题
- 含有几个字符串
- 含有条目项目
现在我们要用Builder模式编写出这个文档。
Builder类中定义了决定文档结构的方法,然后使用Director类使用该方法编写一个具体的文档
Builder是抽象类,它仅仅声明了抽象方法。Builder类的子类决定了用来编写文档的具体处理。
定义如下Builder的子类:
Director使用TextBuilder类可以编写出纯文本文档,使用HTMLBuilder类时可以编写出HTML文档。
总览:
Builder类:
Director类:
TextBuilder类:
HTMLBuilder类:
Main类:
result:
看的越多,会发现好多设计模式都有细微或很大的相似之处,可能会产生迷惑。