新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:设计模式c#语言描述——建造者模式

设计模式c#语言描述——建造者模式

新客网 XKER.COM 2004-07-05 来源: 收藏本文
设计模式c#语言描述——建造者(builder)模式



*本文参考了《JAVA与模式》的部分内容,适合于设计模式的初学者。



建造模式是对象的创建模式。建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。



一个产品常有不同的组成成分作为产品的零件,它们通常叫做产品的内部表象。不同的产品可以有不同的内部表象,也就是不同的零件。使用建造模式可以使客户不需要知道所生成的产品的对象有哪些零件,每个产品的对应零件彼此有何不同,是怎么建造出来的,以及怎样组成产品。下面是一个示例性的实现。

在这个示例性的系统中,最终产品Product只有两个零件,即Part1和Part2.相应的建造方法也有两个:builderPart1和builderPart2.可以看出本模式涉及到四个角色:

抽象建造者(Builder):给出一个抽象接口,以规范产品对象的各个组成部分的建造。

具体建造者(Concrete Builder):担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序的调用下创建产品的实例。

导演者(Director):是与客户端打交道的角色,将创建产品的请求划分为对各个零件的建造请求,再将这些请求委派给具体建造者。

产品(Product):建造中的对象。


Builder:

public interface Builder

{



void buildPart1();



void buildPart2();



Product retrieveResult();



}// END INTERFACE DEFINITION Builder



ConcreteBuilder:

public class ConcreteBuilder : Builder

{



private Product product;



public void buildPart1()

{

//build the first part of the product

}



public void buildPart2()

{

//build the second part of the product

}



public Product retrieveResult()

{

return product;

}



}// END CLASS DEFINITION ConcreteBuilder



Director:

public class Director

{



private Builder builder;



public void Director()

{



}



public void construct()//产品构造方法,负责调用各个零件建造方法

{

builder=new ConcreteBuilder();

builder.builderPart1();

builder.builderPart2();

builder.retrieveResult();

}



}// END CLASS DEFINITION Director



Product:

public interface Product

{



}// END INTERFACE DEFINITION Product



上面的系统中只有一个产品类,对应地也有一个具体建造者类。有多个产品及建造者类的建造模式如下图:


收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐