建造者模式(生产器模式):
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
角色组成:
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(); } }
总结:
建造者模式和抽象工厂模式十分相似,虽然都是用来建造庞大的复杂的对象,但是注重点不同,主要的区别:
抽象工厂模式,产品对象时直接返回的,其强调的是为创建多个存在相互关系的对象提供一个统一的接口。
工厂模式关注的是创建单个产品
建造者模式,模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象
建造者模式则关注创建符合对象,多个部分。
关于应用:
相同的方法,不同的执行顺序,产生不同的结果时 ,使用建造者模式
多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,使用建造者模式
产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,使用建造者模式
到今天才明白是什么设计模式,设计模式注重的思想,一个人有一个人的实现方式,重要的是我该如何应用这个思想
时间: 2024-10-10 22:00:40