建造者模式的定义是指将一个复杂的构建与其表示相隔离,使得同样的构建过程可以创建不同的表示;将一个复杂的对象分解成多个简单的对象,通过组合在一起一步构建而成,因此可以灵活选择。
优点:
1、每个建造者是相互独立,容易扩展
2、方便控制细节风险
缺点:
1、产品的组成部分必须相同,者限制了使用范围
2、如果产品的内部变化复杂,会增加很多建造者类
建造者(Builder)模式由4个要素组成,分别是产品、抽象建造者、具体建造者、指挥者。
产品角色:包含多个组成部件的复杂对象;
抽象建造者(Builder):包含创建产品的抽象接口,通常提供一个返回产品的方法 getResult();
具体建造者:实现Builder接口,实现复杂产品的具体创建方法;
指挥者:调用建造者对象中的具体创建方法,完成创建复杂对象;
步骤一、定义一个复杂的产品对象
步骤二、定义抽象建造者,且声明抽象创建产品对象方法
步骤三、定义具体实现建造者,实现Builder接口
步骤四、定义指挥者,调用建造者中方法创建复杂对象
客户端
在系统开发中会面临一个问题,如何即将变与不变相分离开,因此可采用建造者模式,如一些部件是不会变,而其相互组合经常变化。举例,汉堡、薯条、可乐这些是不会变的,而经常变化的是组合之后的套餐。
原文:https://www.cnblogs.com/zhaiMaoDou/p/13394175.html