你的位置:首页 > ASP.net教程

[ASP.net教程]面向接口编程之数据处理模块类图


今天整理了一下数据处理模块的接口和类的关系图

系统架构是基于接口来开发的,通过接口调用各模块的实现,通过容器(Unity)配置具体实现类及相应的参数

所有功能都高度独立和服用,空出来的精力可以把每个功能模块做大做强(每个接口可以又n种实现,按需配置),本篇先讲最基本的数据处理模块的架构

一、数据处理通用接口

   数据处理主要是5种接口,添加(IDataAdd)、修改(IDataUpdate)、删除(IDataDel)、查看(IDataView)、获取列表(IDataList)及数据操作总接口(IDataOperate)

   以上5种接口定义基本能满足大部分数据操作的需求

 

二、数据库处理子模块相关实现

    1、数据库处理子模块只要是TableOperate类(实现接口IDataOperate)

    2、对数据库操作必须指定数据库和具体的表,分别通过DbConfig(IDbConfig)和TableOperate(ITableOperate)来配置,通过接口来获取配置信息,如果有特殊的拆库和拆表逻辑可以通过重新实现IDbConfig和ITableOperate来实现

        数据操作接口和实现都保持独立,不需要修改    

    3、TableOperate本身没有数据操作逻辑,是通过泛型仓储类Repository<T>来操作数据库的,仓储类中保留对数据表和字段等信息的映射

       其中泛型仓储类Repository<T>中T就是数据领域的模型,该模型上有对数据库中字段的映射关系

 

三、文本文件处理相关实现

    1、文本操作同理也是有一个数据源配置接口IFileSource(及类FileSource)

    2、文件操作实现暂时较为简单,主要用于对配置文件操作及期缓存来用的

         注:由于文件操作和数据操作同样实现的数据操作基本接口,配置信息存储可以在数据库和文件中都很方便

 

五、数据处理适配类(DataOperate)

    

    由于该架构是面向接口低耦合的,不同模块间调用数据操作,但是引用另一个模块的模型类显然不能合适,那样就成相互依赖了,这个时候这个类就出来调解这个尖锐矛盾了

    1、DataOperate中属性Operater是真是的数据处理对象

    2、T类型是接入模块的模型类,S是被调用的模块的模型类,Converter(IConvertType)是中间的桥梁,负责两种模型的相互转化

    3、IConvertType同样是一个接口,可以自定类型转化逻辑配置上,当然ConvertType类基本能满足大部分转化需求,因为ConvertType中有一个Map属性,可以做好两个类型中不同属性名的映射

 

六、数据保存实现

    太晚要睡觉了,明天继续......(其后有时间还会把日志、配置管理、缓存等很多公共模块的接口定义及关系整理出来)