博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式--建造者(Builder)模式
阅读量:7113 次
发布时间:2019-06-28

本文共 702 字,大约阅读时间需要 2 分钟。

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

                                                                 --《设计模式》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://gdghl.baihongyu.com/

你可能感兴趣的文章
大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合
查看>>
QT 对话框一
查看>>
mysql加密函数
查看>>
JedisConnectionException: Unexpected end of stream.
查看>>
openstack中彻底删除计算节点的操作记录
查看>>
统一回复《怎么学JavaScript?》
查看>>
[AngularJS] Using an AngularJS directive to hide the keyboard on submit
查看>>
博客迁址通知
查看>>
Git查看、删除、重命名远程分支和tag(转)
查看>>
Atitit 编程语言常用算法attilax总结
查看>>
更改WAS Profiles的概要文件的server1的SDK版本
查看>>
Centos下MySQL主从同步配置
查看>>
如何在Node.js中合并两个复杂对象
查看>>
(笔记)VC6插件安装--Unable to register this add-in because its DllRegisterServer returns an error...
查看>>
【.net 深呼吸】细说CodeDom(7):索引器
查看>>
monolog使用
查看>>
【AtCoder010】B - Boxes(差分)
查看>>
三种 Failover 之 Client-Side Connect time Failover、Client-Side TAF、Service-Side TAF
查看>>
ES 相似度算法设置(续)
查看>>
46:八进制到十进制
查看>>