今天又没什么事,复习一下建造者模式。
Gof上的解释是这样的:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
复习之前我们先区分一下同为创建型的工厂和建造者模式。
当创建的对象较为复杂的时候,推荐实用建造者模式。反之,使用工厂模式。因为建造者模式是将对象的具体构建交给了一个导演类,从类的设计上来说,建造者模式更适用于创建较为复杂的对象。而工厂模式的创建是将对象的创建直接放在工厂中,更适用于创建相对简单的对象。个人理解这样的做法是在使用的过程中创建了较为复杂的对象使得工厂与对象的耦合较大,从而设计出了建造者模式,仅仅是个人想法,如果有不对的地方欢迎拍砖和指点。
如果对象的创建流程一样,但每个步骤的实现却不一样,这时使用建造者来创建对象,建造者模式是对对象的实现过程更注重细节和流程。
下面我们来看一看建造者到底是什么样子的:
建造者是由以下几个角色构成:
1.导演类:用于选择使用哪个创建者,与具体产品没什么关系。
2.抽象创建者:定义创建过程的接口,用于生产出产品类。
3.具体创建者:抽象创建者的实现类,改角色实现具体创建细节。
4.产品类:最终生产出来的对象,该对象通常较为复杂。