快速业务通道

Discuz!NT控件剖析之左侧导航控件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-11
;      __baseAggregationData = new AggregationData();
 
             __forumAggregationData = new ForumAggregationData();
 
             __spaceAggregationData = new SpaceAggregationData();
 
             __albumAggregationData = new AlbumAggregationData();
 
             __photoAggregationData = new PhotoAggregationData();
           
             //加载要通知的聚合数据对象,Attach函数将在下面内容中介绍
             AggregationDataSubject.Attach(__baseAggregationData);
 
             AggregationDataSubject.Attach(__forumAggregationData);
          
             AggregationDataSubject.Attach(__spaceAggregationData);
          
             AggregationDataSubject.Attach(__albumAggregationData);
 
             AggregationDataSubject.Attach(__photoAggregationData);
         }
         而前端显示页面的数据对象获取将通过如下属性进行相关的操作和调用。
      
  public static ForumAggregationData ForumAggregation
         {
               get
               {
                   return __forumAggregationData;
               }
         }
          目前已设计了数据读取时所使用的逻辑(相关的聚合数据类),但如果通过进程去更新相应的
已加载的数据 (因为在discuz!nt中的数据要考虑跨进程数据同步)。同时因为要更新的内容又过
于繁杂,所以要使用一种机制来解决这个问题。
        这里我使用了Observer来尝试解决这个问题。
   
        这里不妨将这个模式的图放在这里:  
同时也有系统中所使用的相应设计如下,便于大家进行对比。
 好的,而相关的模式实现代码如下(AggregationDataSubject类中): 1   #region 采用Observer模式清空当前进程中的聚合数据
 2

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号