设计模式Day02
2016-07-01 09:25
218 查看
1、生成器模式
生成器模式也称为建造者模式。生成器模式的意图在于将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
生成器模式的编程步骤:
(1)定义一个产品类;
由于不在该类完成Product类对象的创建,所以无需显示定义构造方法。
(2)定义n个生成器Build类;
生成器是用来生成Product对象的,因此一般来说,Product是生成器类的一个成员变量;每创建一个Product对象,本质上先创建Unit1,Unit2,...UnitN,再把它们组合成所需的Product对象,因此需要n个createUnit()方法及一个组合方法composite();由于createUnit()及composite()是共性,因此可定义共同的生成器类接口,n个生成器类均从此接口派生即可。
(3)定义一个统一调度类,也叫指挥者类。是对生成器接口IBuild的封装。
生成器设计模式涉及4个关键角色:产品(Product)、抽象生成器(IBuild)、具体生成器(Builder)、指挥者(Director)。在生成器模式中,抽象生成器和具体生成器是必需的,指挥者类需要在实际问题中认真考虑,加以取舍。
2、利用Product派生类方法,也可以实现类似的生成功能。
生成器模式也称为建造者模式。生成器模式的意图在于将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
生成器模式的编程步骤:
(1)定义一个产品类;
由于不在该类完成Product类对象的创建,所以无需显示定义构造方法。
(2)定义n个生成器Build类;
生成器是用来生成Product对象的,因此一般来说,Product是生成器类的一个成员变量;每创建一个Product对象,本质上先创建Unit1,Unit2,...UnitN,再把它们组合成所需的Product对象,因此需要n个createUnit()方法及一个组合方法composite();由于createUnit()及composite()是共性,因此可定义共同的生成器类接口,n个生成器类均从此接口派生即可。
(3)定义一个统一调度类,也叫指挥者类。是对生成器接口IBuild的封装。
生成器设计模式涉及4个关键角色:产品(Product)、抽象生成器(IBuild)、具体生成器(Builder)、指挥者(Director)。在生成器模式中,抽象生成器和具体生成器是必需的,指挥者类需要在实际问题中认真考虑,加以取舍。
[代码]java代码:
?[代码]java代码:
?[代码]java代码:
?[代码]java代码:
?[代码]java代码:
?[代码]java代码:
?[代码]java代码:
?[代码]java代码:
?[代码]java代码:
?相关文章推荐
- 下班后的生活,决定了你的一生
- iOS的Cookie存取看我绝对够!!
- 如何写一个NB的商业计划书
- wordpress密码生成与登录密码验证
- Android 自定义属性 format详解
- Java实现利用HttpClient和配置文件实现集群模式下的文件同步分发
- Ubuntu常用命令大全
- mysql数据库逆向生成pdm模型
- Linux Rootkit系列三:实例详解 Rootkit 必备的基本功能
- @ResponseBody注解
- 玩转设备远程,一张结构图看清楚如何实现PLC数据远程传输
- unity之宠物跟随
- Ubuntu 下安装桌面屏幕录制工具Kazam
- c++如何自定义ostream对象,使其实现cout的功能
- c++如何自定义ostream对象,使其实现cout的功能
- GitHub完整使用教程
- 关于高负载服务器Kernel的TCP参数优化
- JDK 切换备注
- 中断和异常
- Eclipse的team下的 SVN update to HEAD 和 Synchronize with repository 的区别