Builder模式在网站自动生成系统中的应用
2008-05-23 19:27
190 查看
google_ad_client = "pub-8800625213955058";
/* 336x280, 创建于 07-11-21 */
google_ad_slot = "0989131976";
google_ad_width = 336;
google_ad_height = 280;
//
一个网站的生成,包括复杂的建立过程,采取的技术不同,这个建立过程就不一样,所以类似Jive的forumFactory,在该系统中也有一个SiteFactory,用来定义不同的站点生成工厂。
现在看看我的系统中站点的生成过程:
1.生成站点结构
2.生成按钮button
3.生成同级别中的集合buttons
4.更新同级别中页面指向新页面的链接
5.生成新的页面
这5步可以看成是5个部件,这个5个部件中任何一个的组装相当复杂。
我们再看看将这5个部件组装起来的过程也比较复杂,站点管理中有删除页面 增加页面,这两中过程都要涉及上面5个部件,但过程次序不一样。
根据Builder模式过程和部件分离的宗旨,很明显这里需要使用builder模式,这样可以将组装站点的过程和5个部件解耦。
设计后,存在下列几个主要class:
Pagebuilder 这是一个抽象类,封装了上面5个部件的组装方法,需要具体定义的有3个。
addPageBuilder 增加新页面,继承pageBuilder类,具体实现需要具体定义的部件组装方法,如增加结构 增加子菜单按钮。
delPageBuilder 删除页面 继承PageBuilder类,是其concrete之一,主要定义部件的拆装方法。
IniPageBuilder 初始化页面,站点第一次建立,需要一些初始化页面,也是PageBuilder的concrete之一。
PageDirector 封装站点的组建过程,比如Conctruct方法,就是封装了增加页面的组建过程,把PageBuilder中5个部件调出来,依据不同的条件和次序排列出增减页面的组建过程。
客户端调用,比如新增页面:
PageBuilder pageBuilder=new addPageBuilder(this,title,name,icon,description);
PageDirector pagedirector = new PageDirector(pageBuilder);
pagedirector.constructNewPage(previd,pid);
/* 336x280, 创建于 07-11-21 */
google_ad_slot = "0989131976";
google_ad_width = 336;
google_ad_height = 280;
//
一个网站的生成,包括复杂的建立过程,采取的技术不同,这个建立过程就不一样,所以类似Jive的forumFactory,在该系统中也有一个SiteFactory,用来定义不同的站点生成工厂。
现在看看我的系统中站点的生成过程:
1.生成站点结构
2.生成按钮button
3.生成同级别中的集合buttons
4.更新同级别中页面指向新页面的链接
5.生成新的页面
这5步可以看成是5个部件,这个5个部件中任何一个的组装相当复杂。
我们再看看将这5个部件组装起来的过程也比较复杂,站点管理中有删除页面 增加页面,这两中过程都要涉及上面5个部件,但过程次序不一样。
根据Builder模式过程和部件分离的宗旨,很明显这里需要使用builder模式,这样可以将组装站点的过程和5个部件解耦。
设计后,存在下列几个主要class:
Pagebuilder 这是一个抽象类,封装了上面5个部件的组装方法,需要具体定义的有3个。
addPageBuilder 增加新页面,继承pageBuilder类,具体实现需要具体定义的部件组装方法,如增加结构 增加子菜单按钮。
delPageBuilder 删除页面 继承PageBuilder类,是其concrete之一,主要定义部件的拆装方法。
IniPageBuilder 初始化页面,站点第一次建立,需要一些初始化页面,也是PageBuilder的concrete之一。
PageDirector 封装站点的组建过程,比如Conctruct方法,就是封装了增加页面的组建过程,把PageBuilder中5个部件调出来,依据不同的条件和次序排列出增减页面的组建过程。
客户端调用,比如新增页面:
PageBuilder pageBuilder=new addPageBuilder(this,title,name,icon,description);
PageDirector pagedirector = new PageDirector(pageBuilder);
pagedirector.constructNewPage(previd,pid);
相关文章推荐
- 再谈网站自动生成系统中的树形结构
- python+flask+html/css+mysql+BAE 打造CSDN简历自动生成系统(附网站完全源码)
- 设计模式之PHP项目应用——策略模式设计自动驾驶系统
- 试卷自动生成系统的开发与应用
- Mac系统应用目录[./Application]不可写,目录无法自动生成!
- Intellij idea generate builder 插件-用于自动生成builder模式代码
- 生成“伪视频”丰富自动测试日志系统 3
- 反射小应用,利用Class自动生成Dao层的部分代码
- 大型网站动态应用系统架构(转)
- Builder设计模式 - 构建整个应用的万能Dialog
- 策略模式应用之商场收费系统(C#源代码)
- php调用系统shell命令自动更新线上网站代码为git版本库最新版
- 如何借助于syslogd生成自己的日志,并且将自己应用的日志放进系统日志目录
- [导入]从架构设计到系统实施——基于.NET 3.0的全新企业应用系列课程(4):设计基于IIS7和AJAX的网站.zip(7.53 MB)
- .Net自动生成Html新闻系统V1.0 Beta 下载
- Builder模式在Java中的应用(转)
- 大型网站系统架构实践(六)深入探讨web应用集群Session保持
- http服务配置/LAMP网站平台/PHP应用部署(Discuz!论坛系统
- 浅谈大型网站动态应用系统架构
- 关于asp网站生成系统的错误解决