Java设计模式菜鸟系列(十五)建造者模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39863125
建造者模式(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());
}
}
} /**
* client測试类
*
* @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();
}
}
}
三、总结
建造者模式将非常多功能集成到一个类里,这个类能够创造出比較复杂的东西。所以与工厂模式的差别就是:工厂模式关注的是创建单个产品,而建造者模式则关注创建复合对象。多个部分。
Java设计模式菜鸟系列(十五)建造者模式建模与实现的更多相关文章
- Java设计模式菜鸟系列(十四)代理模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39856435 代理模式(Proxy):代理模式事实上就是多一个代理类出来,替原对象进行一些 ...
- Java设计模式菜鸟系列(四)工厂方法模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39760895 工厂方法模式(Factory Method) 工厂方法:顾名思义,就是调用工 ...
- Java设计模式菜鸟系列(十)模板方法模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39806973 模板方法模式(Template Method):在一个方法中定义了一个算法的 ...
- Java设计模式菜鸟系列(一)策略模式建模与实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39721563 今天開始咱们来谈谈Java设计模式. 这里会结合uml图形来解说,有对uml ...
- JAVA设计模式之简单粗暴学建造者模式
文章由浅入深,先用简单例子说明建造者,然后分析模式的优缺点,最后结合优秀开源框架Mybatis,说明该模式的用处. 1.先定义一个机器人模型 package com.jstao.model; publ ...
- java设计模式(二)单例模式 建造者模式
(三)单例模式 单例模式应该是最常见的设计模式,作用是保证在JVM中,该对象仅仅有一个实例存在. 长处:1.降低某些创建比較频繁的或者比較大型的对象的系统开销. 2.省去了new操作符,减少系统内存使 ...
- Java设计模式菜鸟系列(两)建模与观察者模式的实现
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39755577 观察者(Observer)模式定义:在对象之间定义了一对多的依赖关系,这样一 ...
- Java设计模式(四)Builder建造者模式
一.场景描述 建造者模式同工厂模式.抽象工厂模式一样,用于创建继承类对象. 工厂模式:http://www.cnblogs.com/mahongbiao/p/8618970.html 抽象工厂模式:h ...
- Java设计模式之(三)——建造者模式
1.什么是建造者模式 Separate the construction of a complex object from its representation so that the same co ...
随机推荐
- [Apple开发者帐户帮助]二、管理你的团队(2)更改团队成员角色
如果您已加入Apple开发者计划,您将在App Store Connect中管理团队成员.有关详细信息,请转到App Store Connect帮助中的添加和编辑用户. 如果您已加入Apple Dev ...
- Django day17 博客项目(一)
一: 博客项目需求分析 首页(显示文章) 文章详情 点赞, 点踩 文章评论 字评论 评论的展示 登录功能(图片验证码) 注册功能(基于form验证,ajax) 个人站点(不同人不同样式,文章过滤) 后 ...
- String,创建对象问题
String str=new String("aaa"); 这行代码究竟创建了几个String对象呢?答案是2个,而不是3个.由于new String("aaa" ...
- SQLServer2008 去除换行符
declare @str varchar(8000)set @str='SQL语句' select replace(@str,char(10),'')
- AndroidStudio怎样导入library项目库
先打开一个Project,然后将libraryr的项目作为module进行导入: File菜单->import module菜单 以上只是导入进来,还没有作为与project真正有效的一部分.需 ...
- VTK:VTK嵌入MFC成功
VTK作为医学显示库,得到较多使用.作为较为上层的设计,对OpenGL进行了封装,并且有Windows.Linux.安卓等开发版本,可移植性较强. 不过VES暂时没有编译成功. 以下是嵌入MFC-ID ...
- 【技术累积】【点】【java】【20】static关键字
基础概念 是个修饰符: 修饰变量.常量.方法.代码块: 被修饰的为静态: 方便在没有创建对象的情况下来进行调用(方法/变量): static修饰的成员被所有的对象所共享: static优先于对象存在, ...
- 【sqli-labs】 less29 GET- Error based -Impidence mismatch -Having a WAF in front of web application (GET型基于错误的带有WAF注入)
这关有点意思,有一点需要事先注意,这关玩的是login.php而不是默认的index.php 再注入之前需要先了解一下HPP(HTTP Parameter Pollution),详情参照这篇 http ...
- alert弹出框 弹出窗口 ----sweetAlert
推荐一款好用的alert,下面地址是demo,很直观的看到效果,wap可以使用 http://www.dglives.com/demo/sweetalert-master/example/ < ...
- Metadata
元数据是关于数据的组织.数据域及其关系的信息,简言之,元数据就是关于数据的数据. Metadata is "data [information] that provides informat ...