读书人

浅学设计方式之建造者(Buildler Patt

发布时间: 2012-11-26 11:48:49 作者: rapoo

浅学设计模式之建造者(Buildler Pattern)模式及在android中的应用

被自己用一根香蕉收买后,舒舒服服的洗完澡以后,认认真真的做完50多个仰卧起坐以后,在得到自己想要的消息后,好吧,不管是无意或者有意。好吧,现在就将近12点了,关于建造者模式,是今天自己再看刘伟老师的设计模式PPT的时候学习的,在《Head First 设计模式》那本书里是没有讲这个建造者模式,好吧,再一次说明,关于设计模式系列文章的文字部分大部分是从网上整理而来,代码部分由自己完成,因为自我感觉还没有能力能够系统的解释一个模式,已经有现成的比较完善的说明,就不重复造轮子了。

一、概述:

在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的 “稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。


二、定义:建造者模式(Builder Pattern)也叫生成器模式,其定义如下:separate the construction of a complex object from its representation so that the same construction process can create different representations.将一个复杂对象的构建与它的标示分离,使同样的构建过程刻意创建不同的表示。三、类图:

浅学设计方式之建造者(Buildler Pattern)模式及在android中的应用


    建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此接口独立于应用程序的商业逻辑。模式中直接创建产品对象的是具体建造者(Concrete Builder)角色。具体建造者类必须实现这个接口所要求的方法:一个是建造方法,另一个是结果返还方法。具体建造者(Concrete Builder)角色:担任这个角色的是于应用程序紧密相关的类,它们在应用程序调用下创建产品实例。这个角色主要完成的任务包括:实现Builder角色提供的接口,一步一步完成创建产品实例的过程。在建造过程完成后,提供产品的实例。指导者—irector)角色:担任这个角色的类调用具体建造者角色以创建产品对象。导演者并没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者对象。产品(Product)角色:产品便是建造中的复杂对象。指导者角色是于客户端打交道的角色。导演者角色将客户端创建产品的请求划分为对各个零件的建造请求,再将这些请求委派给具体建造者角色。具体建造者角色是做具体建造工作的,但却不为客户端所知。


四、代码示例明天完成。
五、应用1. 建造者模式的优点
读书人网 >软件开发

热点推荐