建造者模式

设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。

 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

源码地址:https://files.cnblogs.com/files/xiluhua/designPattern.rar

欢迎亲们评论指教。

posted @ 2015-04-10 09:53  xiluhua  阅读(148)  评论(0编辑  收藏  举报