首页 > 代码库 > 设计模式--建造者(Builder)模式

设计模式--建造者(Builder)模式

将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示

                                                                 --《设计模式》GOF



Insus.NET在ASP.NET环境中,列举一个建造者设计模式(Builder)例子,以最帖近开发环境与需求。

开发站点时,我们需要开发新闻类,视频类,图片类等等。每个网页还有可能是页头,内容,页脚等。开发这些页头,内容与页脚时,我们会使用用户控件来写好,加载至网页中去。

每个类别的网页,你分别新建三个用户控件(ascx), NewsHeader,NewsContent,NewsFooter, xxxHeader,xxxContent,xxxFooter等......

NewsHeader.ascx:
技术分享

NewsContent.ascx:
技术分享

NewsFooter.ascx:
技术分享


就是说,把网页每块做成用户控件,这样细化与维护。

现在我们需要建造一个网页(产品),这个产品是由三个部件组成。
技术分享


你的网页会有很多,如上所列举的,显示文章,新闻,视频,图片等。我们需要定义一个抽象的共同接口,让具体类有一个统一标准:
技术分享

建造者设计模式,还一个角色,就是指挥者:
技术分享


现在我们可以建造具体类,真实产品(网页),NewPage, VideoPage,ArticlePage 等等:
技术分享


现在,我们需要在实际的网页中去展示完整的产品(网页):
在xxx.aspx中,拉一个控件容器,如PlaceHolder,这里只是举列,实际环境中,也许需要拉好几个容器,来在网页定义与动态加载。
技术分享


xxx.aspx.cs:
技术分享


网页运行时,看看效果:
技术分享

 

设计模式--建造者(Builder)模式