(4/23)建造者模式
来源:互联网 发布:伊士顿高频交易算法 编辑:程序博客网 时间:2024/06/07 09:38
建造者模式(生产器模式):
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
角色组成:
Director导演
Product产品类
Builder抽象建造者
只要构造不同的构造者,就会有不同对象的建造过程。
总结:
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
角色组成:
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
- (4/23)建造者模式
- 设计模式之建造型-建造者模式(4)
- (4)建造者模式
- 4建造者模式(Builder)
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- 23种设计模式(4):建造者模式
- Android 触摸屏手势识别
- HDU3371 Connect the Cities【Kruskal】
- .NET执行程序运行路径
- GridView Item显示的高度过长
- [C How To Program] 习题6.30 erato_traverse
- (4/23)建造者模式
- unity之声音播放
- Linux定时任务Cron命令详解
- 既然读文件要使用和文件编码一致的编码,那么javac编译文件也需要读取文件,它使用什么编码呢?
- kindeditor批量上传 拼接json串
- [C How To Program] 习题6.32 递归的选择排序
- 数据库学习笔记(十四)
- windows7关闭"***已停止工作"和"您想发送关于此问题的详细信息吗"提示
- [C How To Program] 习题6.39 递归求数组的最小值