设计模式之创建者模式
来源:互联网 发布:淘宝买复合弓违法吗 编辑:程序博客网 时间:2024/04/30 18:35
模式动机:
无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节。
public class Product
{
privateStringpartA; //可以是任意类型
privateStringpartB;
privateStringpartC;
//partA的Getter方法和Setter方法省略
//partB的Getter方法和Setter方法省略
//partC的Getter方法和Setter方法省略
}
publicabstract class Builder
{
protected Product product=new Product();
public abstract voidbuildPartA();
public abstract voidbuildPartB();
public abstract voidbuildPartC();
public ProductgetResult()
{
return product;
}
}
publicclass Director
{
private Builderbuilder;
public Director(Builder builder)
{
this.builder=builder;
}
public voidsetBuilder(Builder builder)
{
this.builder=builer;
}
public Product construct()
{
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
returnbuilder.getResult();
}
}
Builderbuilder = new ConcreteBuilder();
Directordirector = new Director(builder);
Productproduct = director.construct();
……
//由邮件会话对象新建一个邮件消息对象
MimeMessage message=new MimeMessage(session);
//设置邮件地址
InternetAddress from=new InternetAddress("sunny@test.com");
message.setFrom(from);//设置发件人
InternetAddress to=new InternetAddress(to_mail);
message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO
message.setSubject(to_title);//设置主题
message.setText(to_content);//设置信件内容
message.setSentDate(newDate());//设置发信时间
message.saveChanges();//存储邮件信息
Transporttransport=session.getTransport("smtp");
transport.connect("smtp.test.com","test","test");
transport.sendMessage(message,message.getAllRecipients());
……
(2) 在很多游戏软件中,地图包括天空、地面、背景等组成部分,人物角色包括人体、服装、装备等组成部分,可以使用建造者模式对其进行设计,通过不同的具体建造者创建不同类型的地图或人物。
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式之创建者模式
- JAVA设计模式之创建者模式
- c++ 设计模式之创建者(生成器)模式
- java 设计模式之八-创建者模式
- 设计模式之创建者模式 c++ 实现
- 设计模式之创建者模式(Builder)
- java设计模式 之 创建者模式
- c++ 设计模式之创建者(生成器)模式
- Swift设计模式之创建者模式
- JAVA设计模式之创建者模式
- hdoj 2188 悼念512汶川大地震遇难同胞——选拔志愿者 【博弈论&&巴什博弈】
- Matlab函数总结
- NSURLSession 做文件上传
- 2015-09-07 上班第二天
- hdu 1081 To The Max最大矩阵和(动态规划)
- 设计模式之创建者模式
- Android中的数据存储: SharedPreferences,内部存储,外部存储,数据库
- R语言包_plotly
- cocos:command not found 解决方法
- POJ 2836 Rectangular Covering
- poj 2482(扫描线+离散化)
- sql server 2005 链接服务器:未将服务器 配置为用于 RPC
- 新人乍到
- 14个不可错过的面试成功技巧(送给正在找工作的你)