渭南网站建设推广,深圳网站建设费用多少,crm管理系统的优缺点,怎么做网络营销平台也叫生成器模式。将一个复杂的构建与它的表示分离#xff0c;使得同样的构建过程可以创建不同的表示。 在建造者模式中#xff0c;有如下4个角色#xff1a;
抽象建造者#xff08;Builder#xff09;#xff1a;用于规范产品的各个组成部分#xff0c;并进行抽象…也叫生成器模式。将一个复杂的构建与它的表示分离使得同样的构建过程可以创建不同的表示。 在建造者模式中有如下4个角色
抽象建造者Builder用于规范产品的各个组成部分并进行抽象一般独立于应用程序的逻辑。具体建造者Concrete Builder实现抽象建造者的所有方法并返回一个组建好的产品实例Product。产品Product建造中的对象一个系统会有多于一个的产品类这些产品不一定有共同的接口可以是不相关的。导演Director该角色负责安排已有模块的顺序指导Builder的建造过程可以有多个Director角色。
我们通过一个生产不同品牌电脑的例子来加深理解
public abstract class Computer {protected String cpu;protected String band;public abstract void assemble();
}public class DellComputer extends Computer {Overridepublic void assemble() {this.band Dell;}
}public class HpComputer extends Computer {Overridepublic void assemble() {this.band Hp;}
}public abstract class AbstractBuilder {protected Computer computer;public abstract void setCpu();public abstract Computer build();
}public class DellBuilder extends AbstractBuilder {public DellBuilder() {this.computer new DellComputer();}Overridepublic void setCpu() {this.computer.cpu intel;}Overridepublic Computer build() {this.computer.assemble();return this.computer;}
}public class HpBuilder extends AbstractBuilder {public HpBuilder() {this.computer new HpComputer();}Overridepublic void setCpu() {this.computer.cpu intel;}Overridepublic Computer build() {this.computer.assemble();return this.computer;}
}public class Director {private AbstractBuilder builder;public Director(AbstractBuilder builder) {this.builder builder;}public Computer create() {builder.setCpu();return builder.build();}
}
大家如果需要视频版本的讲解可以关注下我的B站 五、设计模式之建造者模式精讲