动态刷新机制的业务对象

来源:互联网 发布:网络品牌保护 编辑:程序博客网 时间:2024/04/30 04:03
 

制作动态刷新引擎的动机,是为了解决业务系统中,业务组件要时刻根据数据源数据的变化而改变自己行为模式、表现形式的需求而设计的。

通过动态刷新引擎,业务组件无需时刻监视数据源数据的变化,而是通过动态刷新引擎主动推送数据来得到最新的、感兴趣的数据及其变化。

1,标记数据源

仅需在发布动态数据的业务类(继承Phenix.BusinessBase)上标记:

[Phenix.Core.PermanentRenovateLog]
即可,只要发生提交数据的动作,则被动态刷新服务截获并广播到订阅者。

2,设计订阅者

继承Phenix.Renovate.BusinessBase、Phenix.Renovate.BusinessListBase;

在Phenix.Renovate.BusinessListBase继承类里实现接口:

namespace Phenix.Renovate.Client
{
  /// <summary>
  /// 订阅者接口
  /// </summary>
  public interface ISubscriber
  {
    #region 属性

    /// <summary>
    /// 同步间隔(秒)
    /// </summary>
    int SynchronizeSpace { get; }

    /// <summary>
    /// 为动态刷新服务和自动构建业务对象集合提供select语句
    /// 注意:SQL字段与业务类字段的映射关系用DataMapperAttribute标注
    ///       where条件不允许带参数
    /// </summary>
    string SelectSql { get; }

    #endregion
  }
}

并打上标签:

[Phenix.Core.PermanentRenovateLog(ViewName = 视图ID)]

如果不打标签则将该类的全名作为视图ID

如此,只要在业务系统中,new业务集合类,并调用它的StartRenovate()、StopRenovate()来开启或者停止动态刷新。在开启阶段,系统自动维护业务集合对象里的业务对象及其属性值。