(4/23)建造者模式

来源:互联网 发布:伊士顿高频交易算法 编辑:程序博客网 时间:2024/06/07 09:38
建造者模式(生产器模式):

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

角色组成:
Director导演
Product产品类
Builder抽象建造者

ConcretwBuilder具体建造者


//product产品类public class Phone {private String name;private String MainBoard;private String system;private String isPassTest;public void setName(String name) {this.name = name;}public void setMainBoard(String mainBoard) {MainBoard = mainBoard;}public void setSystem(String system) {this.system = system;}public void setIsPassTest(String isPassTest) {this.isPassTest = isPassTest;}public void getProductInfor(){System.out.println("Name : "+this.name);System.out.println("MainBoard : "+this.MainBoard);System.out.println("system : "+this.system);System.out.println("Test : "+this.isPassTest);}}

//抽象构造者public interface BuilderPhone {public void buildPhoneName();public void buildMailBoard();public void buildSystem();public void judgeIsPassTest();}

//ConcretwBuilder具体建造者public class BuildHUAWEI implements BuilderPhone {private Phone HUAWEI = new Phone();public void buildPhoneName() {HUAWEI.setName("HUAWEI");System.out.println("HUAWEI is building...");}public void buildMailBoard() {HUAWEI.setMainBoard("c8812");System.out.println("MainBoard is ok...");}public void buildSystem() {HUAWEI.setSystem("Andriod4.4");System.out.println("System is ok...");}public void judgeIsPassTest() {HUAWEI.setIsPassTest("true");System.out.println("Test is ok...");}public Phone getPhone(){return HUAWEI;}}

只要构造不同的构造者,就会有不同对象的建造过程。

//Director导演public class DirectorBuildHUAWEI {public void construct(BuildHUAWEI newPhone){newPhone.buildPhoneName();newPhone.buildMailBoard();newPhone.buildSystem();newPhone.judgeIsPassTest();}}

//测试类public class BuilderPartternDemo {public static void main(String[] args) {DirectorBuildHUAWEI director = new DirectorBuildHUAWEI();BuildHUAWEI huawei = new BuildHUAWEI();director.construct(huawei);Phone newPhone = huawei.getPhone();newPhone.getProductInfor();}}

总结:

建造者模式和抽象工厂模式十分相似,虽然都是用来建造庞大的复杂的对象,但是注重点不同,主要的区别:

抽象工厂模式,产品对象时直接返回的,其强调的是为创建多个存在相互关系的对象提供一个统一的接口。
工厂模式关注的是创建单个产品

建造者模式,模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象
建造者模式则关注创建符合对象,多个部分。

关于应用:

相同的方法,不同的执行顺序,产生不同的结果时 ,使用建造者模式
多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,使用建造者模式
产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,使用建造者模式


到今天才明白是什么设计模式,设计模式注重的思想,一个人有一个人的实现方式,重要的是我该如何应用这个思想


0 0
原创粉丝点击