您的位置:首页 > 编程语言 > Java开发

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获取更多内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息