您的位置:首页 > 其它

后台管理框架之七 :业务逻辑设计

2014-10-08 16:38 267 查看
  前面几章已经介绍了后台及前台的设计思路,目前剩下的就是中间的桥接层(也就是业务逻辑层)设计了。

  业务逻辑层,顾名思议,就是实现实际业务需求的逻辑数据处理层,它和MVC框架的Controller一起,承担着承前启后的桥接作用。其实也可以说,它是MVC框架中Controller的业务逻辑处理部分,为了代码清晰度及松散度,将这部分内容独立出来,成为一个单独的处理层。

  既然这层的作用是承前启后,所以它的设计思路是依照前、后台需要进行设计的,重点参照Repository层的设计。它的设计模型图如下:



  对于业务逻辑层的设计,核心的就是ICRUDHandler<ViewT>
和HanderBase<ViewT,EntityT>。这俩定义了接口和抽象类,相对来说较为简单,不过基本上能完成数据的增、删、改、加载的操作。ICRUDHandler<ViewT>定义基本的操作,HanderBase<ViewT,EntityT>抽象类完成了大部分的实现。这个抽象类定义了视图模型和数据模型,分别从前台接受视图模型数据,进行转换后生成数据模型数据,然后调后Repository层进行数据持久化。HanderBase存在唯一带参构造,参数为ICRUDRepository<entityT>,这个参数就是Repository层对象。

  从图中也可以看出,数据的查询操作未在这里定义,主要是考虑到查询条件多种多样,较难定义一个完全抽象的查询接口;再一个业务逻辑层是视图模型和数据模型的分离点,如果在这里做抽象可能会将视图模型和数据模型结合到一起,与最初设计初衷不符;再如果做适配,个人觉得增加代码量,短时间内也没动那份心思。

  还有一点补充的就是,整个项目中除实体模型对象外基本都采用AutoFac进行注入创建,基本上都是在构造函数中进行注入,做好相应配置后对象创建的代码量极少,代码结构也极为清晰,绝对推荐使用。以下是大致的序列图:



  到此为止,初步完成前后台交互、以及持久化的设计,下一步再介绍细节部分的设计。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: