java设计模式之建造者设计模式
2016-11-16 17:08
239 查看
建造者设计模式同工厂设计模式类似,它是批量的对实现了同一接口的实现类进行对象的创建
建造者设计模式的设计思路:
第一步:定义接口Sender,提供共有的方法send
第二步:定义类SmsSender,实现接口Sender
第三步:定义类MailSender,实现接口Sender
第四步:定义建造者类Builder,对实现了Sender接口的类进行批量的创建对象
具体编码实现:
定义接口Sender,提供共有的方法send
/**
* 定义接口Sender,提供共有的方法send
*
* @author zdliu
*
*/
public interface Sender {
/**
* 共有的方法send
*/
public abstract void send();
}
定义类SmsSender,实现接口Sender
/**
* 定义类SmsSender,实现接口Sender
*
* @author zdliu
*
*/
public class SmsSender implements Sender {
@Override
public void send() {
System.out.println("sms...");
}
}
定义类MailSender,实现接口Sender
/**
* 定义类MailSender,实现接口Sender
*
* @author zdliu
*
*/
public class MailSender implements Sender {
@Override
public void send() {
System.out.println("mail....");
}
}
定义建造者类Builder,对实现了Sender接口的类进行批量的创建对象
/**
* 定义建造者类Builder,对实现了Sender接口的类进行批量的创建对象
*
* @author zdliu
*
*/
public class Builder {
/**
* 存放对象的集合
*/
private List<Sender> list = new ArrayList<Sender>();
/**
* 批量创建MailSender对象
*
* @param num
* 要创建的数量
* @return 存放有MailSender对象的集合
*/
public List<Sender> productMailSender(int num) {
for (int i = 0; i < num; i++) {
list.add(new MailSender());
}
return list;
}
/**
* 批量创建SmsSender对象
*
* @param num
* 要创建的数量
* @return 存放有SmsSender对象的集合
*/
public List<Sender> productSmsSender(int num) {
list.clear();
for (int i = 0; i < num; i++) {
list.add(new SmsSender());
}
return list;
}
}
测试类:
public class Test {
public static void main(String[] args) {
Builder builder = new Builder();
// 测试MailSender对象的创建
List<Sender> productMailSender = builder.productMailSender(3);
for (Sender send : productMailSender) {
send.send();
}
// 测试SmsSender对象的创建
List<Sender> productSmsSender = builder.productSmsSender(5);
for (Sender send : productSmsSender) {
send.send();
}
}
}
控制台输出信息:
mail....
mail....
mail....
sms...
sms...
sms...
sms...
sms...
关注微信公众号 java刘振东或者搜索java-lzd获取更多内容
建造者设计模式的设计思路:
第一步:定义接口Sender,提供共有的方法send
第二步:定义类SmsSender,实现接口Sender
第三步:定义类MailSender,实现接口Sender
第四步:定义建造者类Builder,对实现了Sender接口的类进行批量的创建对象
具体编码实现:
定义接口Sender,提供共有的方法send
/**
* 定义接口Sender,提供共有的方法send
*
* @author zdliu
*
*/
public interface Sender {
/**
* 共有的方法send
*/
public abstract void send();
}
定义类SmsSender,实现接口Sender
/**
* 定义类SmsSender,实现接口Sender
*
* @author zdliu
*
*/
public class SmsSender implements Sender {
@Override
public void send() {
System.out.println("sms...");
}
}
定义类MailSender,实现接口Sender
/**
* 定义类MailSender,实现接口Sender
*
* @author zdliu
*
*/
public class MailSender implements Sender {
@Override
public void send() {
System.out.println("mail....");
}
}
定义建造者类Builder,对实现了Sender接口的类进行批量的创建对象
/**
* 定义建造者类Builder,对实现了Sender接口的类进行批量的创建对象
*
* @author zdliu
*
*/
public class Builder {
/**
* 存放对象的集合
*/
private List<Sender> list = new ArrayList<Sender>();
/**
* 批量创建MailSender对象
*
* @param num
* 要创建的数量
* @return 存放有MailSender对象的集合
*/
public List<Sender> productMailSender(int num) {
for (int i = 0; i < num; i++) {
list.add(new MailSender());
}
return list;
}
/**
* 批量创建SmsSender对象
*
* @param num
* 要创建的数量
* @return 存放有SmsSender对象的集合
*/
public List<Sender> productSmsSender(int num) {
list.clear();
for (int i = 0; i < num; i++) {
list.add(new SmsSender());
}
return list;
}
}
测试类:
public class Test {
public static void main(String[] args) {
Builder builder = new Builder();
// 测试MailSender对象的创建
List<Sender> productMailSender = builder.productMailSender(3);
for (Sender send : productMailSender) {
send.send();
}
// 测试SmsSender对象的创建
List<Sender> productSmsSender = builder.productSmsSender(5);
for (Sender send : productSmsSender) {
send.send();
}
}
}
控制台输出信息:
mail....
mail....
mail....
sms...
sms...
sms...
sms...
sms...
关注微信公众号 java刘振东或者搜索java-lzd获取更多内容
相关文章推荐
- Java设计模式-----Builder建造者模式
- java_23种设计模式之建造者模式
- java设计模式(一)——适配器、桥接、建造者、职责链、命令
- java设计模式--创建模式--建造者模式
- java设计模式之建造者模式学习
- java 设计模式 建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- Java设计模式笔记(5)建造者模式
- java设计模式之建造者模式(3)
- JAVA设计模式:建造者(Builder)
- 设计模式(JAVA)-------建造者模式
- java设计模式之建造者模式
- JAVA系列-设计模式-建造者模式
- Java设计模式(15)--建造者
- JAVA设计模式--建造者模式
- java 设计模式-创建模式之建造者模式
- java设计模式之建造者模式
- java设计模式(二)单例模式 建造者模式
- Java--设计模式之建造者模式