设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。
1 package designPattern; 2 /** 3 * 建造者模式 4 * @author Administrator 5 */ 6 public class A7_BuilderTest { 7 8 /** 9 * 将一个复杂对象的构建与他的表示分离,使的同样的构建过程可以创建不同的表示 10 * 适用于: 11 * 1,创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式, 12 * 2,构造过程必须允许被构造的对象有不同的表示 13 */ 14 public static void main(String[] args) { 15 PersonDirector pd = new PersonDirector(); 16 PersonBuilder person = pd.constructPerson(new ManBuilder()); 17 System.out.println(person.getBody()); 18 System.out.println(person.getFoot()); 19 System.out.println(person.getHead()); 20 } 21 } 22 //1,AbstractFactory 为创建一个Product对象的各个部件指定抽象接口 23 interface PersonBuilderService 24 { 25 void buildHead(); 26 void buildBody(); 27 void buildFoot(); 28 PersonBuilder buildPerson(); 29 } 30 //2,ConcreteFactory 实现Builder的接口以构造和装配该产品的各个部件 31 class ManBuilder implements PersonBuilderService 32 { 33 PersonBuilder person; 34 public ManBuilder() 35 { 36 person=new Man(); 37 } 38 public void buildHead() 39 { 40 person.setHead("head"); 41 } 42 public void buildBody() 43 { 44 person.setBody("body"); 45 } 46 public void buildFoot() 47 { 48 person.setFoot("foot"); 49 } 50 public PersonBuilder buildPerson() { 51 return person; 52 } 53 } 54 //3,Designer 构造一个使用Builder的对象 55 class PersonDirector 56 { 57 PersonBuilder constructPerson(PersonBuilderService pb) 58 { 59 pb.buildBody(); 60 pb.buildFoot(); 61 pb.buildHead(); 62 return pb.buildPerson(); 63 } 64 } 65 66 class PersonBuilder 67 { 68 String head; 69 String body; 70 String foot; 71 public String getHead() { 72 return head; 73 } 74 public void setHead(String head) { 75 this.head = head; 76 } 77 public String getBody() { 78 return body; 79 } 80 public void setBody(String body) { 81 this.body = body; 82 } 83 public String getFoot() { 84 return foot; 85 } 86 public void setFoot(String foot) { 87 this.foot = foot; 88 } 89 } 90 91 class Man extends PersonBuilder 92 { 93 94 }
环境:JDK1.6,MAVEN,tomcat,eclipse
源码地址:http://files.cnblogs.com/files/xiluhua/designPattern.rar
欢迎亲们评论指教。