java设计模式连载(3) --建造者模式
2011-08-12 22:41
453 查看
java设计模式连载(3) --建造者模式
意图:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用性:
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。
实例:
1. 定义一个计算机构建者接口
2. 定义一个通用计算机类
3. 定义一个主管,管理构建计算机的人
4. 定义一个PC机 ,继承通用计算机这个类。或者可以再定义大型计算机
5. 定义一个专门建造PC机的构造者
6. 测试这个模式
7. 多谢浏览,欢迎斧正。
意图:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用性:
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。
实例:
1. 定义一个计算机构建者接口
package Builder_Pattern; public interface ComputerBuilder { public void buildDisplayer(); public void buildMainframe(); public void buildDataline(); public Computer buildComputer(); }
2. 定义一个通用计算机类
package Builder_Pattern; public class Computer{ private String displayer; private String mainframe; private String dataline; public String getDisplayer() { return displayer; } public void setDisplayer(String displayer) { this.displayer = displayer; } public String getMainframe() { return mainframe; } public void setMainframe(String mainframe) { this.mainframe = mainframe; } public String getDataline() { return dataline; } public void setDataline(String dataline) { this.dataline = dataline; } }
3. 定义一个主管,管理构建计算机的人
package Builder_Pattern; public class ComputerDirector { public Computer constructComputer(ComputerBuilder cb){ cb.buildDisplayer(); cb.buildMainframe(); cb.buildDataline(); return cb.buildComputer(); } }
4. 定义一个PC机 ,继承通用计算机这个类。或者可以再定义大型计算机
package Builder_Pattern; public class PC extends Computer{ }
5. 定义一个专门建造PC机的构造者
package Builder_Pattern; public class PCBuilder implements ComputerBuilder { private Computer computer; public PCBuilder(){ computer = new PC(); } @Override public Computer buildComputer() { return computer; } @Override public void buildDataline() { computer.setDataline("构建个人计算机数据线"); } @Override public void buildDisplayer() { computer.setDisplayer("构建个人计算机显示器"); } @Override public void buildMainframe() { computer.setMainframe("构建个人计算机主机"); } }
6. 测试这个模式
package Builder_Pattern; public class Test{ public static void main(String[] args) { //实例化一个计算机构建者 ComputerDirector computerDirector = new ComputerDirector(); Computer computer = computerDirector.constructComputer( new PCBuilder()); System.out.println(computer.getDisplayer()); System.out.println(computer.getMainframe()); System.out.println(computer.getDataline()); } }
7. 多谢浏览,欢迎斧正。
相关文章推荐
- java设计模式连载(5) --单态模式
- Java编程开发设计模式之--建造者模式(Builder)
- Java设计模式圣经连载(04)-单例模式
- JAVA--建造者模式(Builder)--设计模式四
- java23种设计模式三(连载)
- java中的设计模式-builder(建造者模式)
- Java设计模式连载_1_单例模式(Singleton)
- Java设计模式——建造者模式(创建型模式)
- Java设计模式圣经连载(01)-简单工厂模式
- Java设计模式—建造者模式
- Java设计模式-建造者模式(2)
- Java设计模式圣经连载(05)-代理模式
- java设计模式——建造者模式(Builder)
- java 23种设计模式--建造者模式(builder)
- Java设计模式 - Builder(建造者模式)
- Java常用的设计模式04:常用设计模式之建造者模式(创建型模式)
- java设计模式连载(7) --桥接模式
- 设计模式之第11章-建造者模式(Java实现)
- Java设计模式——创建型模式——建造者模式(Builder Pattern)
- java23种设计模式六(连载)