文章23 | 阅读 9527 | 点赞0
建造者模式(Builder):工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理。简单起见,就拿之前的工厂方法模式进行修改一下就可以得到建造者模式。
##一、uml建模:
##二、代码实现
/**
* 示例:建造者模式
*
* 与工厂模式的区别:工厂类模式提供的是创建单个类,而建造者模式则是将各种产品集中起来进行管理
*/
interface Sender {
public void send();
}
class EmailSender implements Sender {
@Override
public void send() {
System.out.println("使用电子邮箱发送...");
}
}
class SmsSender implements Sender {
@Override
public void send() {
System.out.println("使用短信发送...");
}
}
class Builder {
private List<Sender> list = new ArrayList<Sender>();
public List<Sender> getList() {
return list;
}
public void produceEmailSender(int count) {
for (int i = 0; i < count; i++) {
list.add(new EmailSender());
}
}
public void produceSmsSender(int count) {
for (int i = 0; i < count; i++) {
list.add(new SmsSender());
}
}
}
/**
* 客户端测试类
*
* @author Leo
*/
public class Test {
public static void main(String[] args) {
Builder builder = new Builder();
builder.produceEmailSender(5);
builder.produceSmsSender(5);
/**
* 遍历list中的元素
*/
List<Sender> list = builder.getList();
for (int i = 0; i < list.size(); i++) {
Sender sender = list.get(i);
System.out.println(sender);
sender.send();
}
}
}
##三、总结
建造者模式将很多功能集成到一个类里,这个类可以创造出比较复杂的东西。所以与工厂模式的区别就是:工厂模式关注的是创建单个产品,而建造者模式则关注创建复合对象,多个部分。
内容来源于网络,如有侵权,请联系作者删除!