Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1503163
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 20:09:03

一起学习
一个网站的生成,包括复杂的建立过程,采取的技术不同,这个建立过程就不一样,所以类似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); 下载本文示例代码


Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用Builder模式在网站自动生成系统中的应用
阅读(140) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~