设计模式-建造模式(Builder)
2013-07-08 00:00
435 查看
Message.java
WelcomeMessage.java
GoodbyeMessage.java
Builder.java
WelcomeBuilder.java
GoodbyeBuilder.java
Director.java
Main.java
参考实例来源于博客特种兵—AK47的《JAVA与模式》26天系列—第3天—抽象工厂模式的文章,仅供自己学习用。
package cn.foxeye.design.builder; import java.util.Date; public class Message { private String to; private String from; private String subject; private String body; private Date sendDate; public void send() { System.out.println("收件人地址:" + to); System.out.println("发件人地址:" + from); System.out.println("标题:" + subject); System.out.println("内容:" + body); System.out.println("发送日志:" + sendDate); } public String getTo() { return to; } public void setTo(String to) { this.to = to; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public Date getSendDate() { return sendDate; } public void setSendDate(Date sendDate) { this.sendDate = sendDate; } }
WelcomeMessage.java
package cn.foxeye.design.builder; public class WelcomeMessage extends Message { public WelcomeMessage() { System.out.println("发送欢迎信息"); } }
GoodbyeMessage.java
package cn.foxeye.design.builder; public class WelcomeMessage extends Message { public WelcomeMessage() { System.out.println("发送欢迎信息"); } }
Builder.java
package cn.foxeye.design.builder; import java.util.Date; public abstract class Builder { protected Message message; public abstract void buildSubject(); public abstract void buildBody(); public void buildTo(String to) { this.message.setTo(to); } public void buildFrom(String from) { this.message.setFrom(from); } public void buildSendDate() { Date date = new Date(); this.message.setSendDate(date); } public void sendMessage() { message.send(); } }
WelcomeBuilder.java
package cn.foxeye.design.builder; public class WelcomBuilder extends Builder { public WelcomBuilder() { message = new WelcomeMessage(); } @Override public void buildSubject() { message.setSubject("歡迎內容"); } @Override public void buildBody() { message.setBody("歡迎標題"); } }
GoodbyeBuilder.java
package cn.foxeye.design.builder; public class GoodbyeBuilder extends Builder { public GoodbyeBuilder() { message = new GoodbyeMessage(); } @Override public void buildSubject() { message.setSubject("歡送標題"); } @Override public void buildBody() { message.setBody("歡送內容"); } }
Director.java
package cn.foxeye.design.builder; public class Director { private Builder builder; public Director(Builder builder) { this.builder = builder; } public void construct(String to, String from) { this.builder.buildTo(to); this.builder.buildFrom(from); this.builder.buildSubject(); this.builder.buildBody(); this.builder.buildSendDate(); this.builder.sendMessage(); } }
Main.java
package cn.foxeye.design.builder; public class Main { public static void main(String[] args) { Builder builder = new WelcomBuilder(); Director director = new Director(builder); director.construct("123@qq.com", "222@qq.com"); } }
参考实例来源于博客特种兵—AK47的《JAVA与模式》26天系列—第3天—抽象工厂模式的文章,仅供自己学习用。
相关文章推荐
- Java设计模式 建造模式(Builder)
- JAVA设计模式(04):创建型-建造模式(Builder)
- 设计技巧20:建造模式:Builder 分不同的步骤创建复杂的对象,支持可变参数
- 5.23种设计模式的Java版--Builder (建造)
- 设计模式:创建型模式:建造模式(Builder Pattern)
- 设计模式之四 --- 建造(Builder)模式
- JAVA设计模式(04):创建型-建造模式(Builder)
- 设计模式之2 - 建造模式Builder
- Java设计模式 —— 建造模式 (Builder)
- Java设计模式 - 建造模式(Builder Pattern)
- 设计模式之七:建造模式(Builder Pattern)
- builder设计模式(建造模式)
- 设计模式之一--- 建造(Builder)模式
- 设计模式之Builder(建造模式)
- JAVA设计模式——建造(Builder)模式
- 设计模式之四 --- 建造(Builder)模式
- java设计模式(5):建造模式(Builder)
- 设计模式之建造模式Builder
- 设计模式学习(创建型模式)—建造模式(Builder)
- 设计模式之四 --- 建造(Builder)模式