zoukankan      html  css  js  c++  java
  • 设计模式--建造者(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:


    网页运行时,看看效果:

     

    下面内容于2014-12-23 13:32分补充:
    忘记把完整的演示代码分享了:http://download.cnblogs.com/insus/CSharpNET/DesignPattern_Builder.rar

  • 相关阅读:
    A1091. Acute Stroke
    A1103. Integer Factorization
    A1097. Deduplication on a Linked List
    A1074. Reversing Linked List
    设计模式之装饰模式
    基于UML的需求分析和系统设计
    软件测试开篇
    当抽象类遇到单例模式
    设计模式开篇
    此刻开始,点滴积累
  • 原文地址:https://www.cnblogs.com/insus/p/4179620.html
Copyright © 2011-2022 走看看