关于代码分层的理解
我所理解的软件程序代码结构分层大致有以下几部分:
UI(User Interface) 用户与软件的交互接口,例如网页,软件的操作界面
DM(Data Model)绑定UI的基本数据或操作,也会有简单的逻辑处理,例如asp.net的后台cs文件,会有事件的定义和一些参数的定义,在MVVM的开发模式中的应用比较显著,会特别定义一个cs文件用来绑定UI的控件属性或事件
SL(Service Layer),服务层,Web Service, WCF Service等,在一些软件开发中,例如silverlight,由于silverlight是嵌在网页里的插件,对silverlight上的控件进行操作不会对web server提交表单,为了与后台数据进行交互,只有通过Service对数据进行访问,当然也有一些软件是为了获得更好的可移植性而采用Service层
BL(Business Layer)业务层,主要的代码逻辑实现层,包含以下几种对象类型:
1.XXXBL,定义业务逻辑方法
2.BO(Business Object),逻辑对象,DM层可以直接引用,用来与UI数据进行绑定,例如Gird的ItemsSource,TextBox的Text,ComboBox的Items,SelectedItems等等
3.CM(Convert Methods),自己取的名字,在调用DL层的时候在BO和DO之间进行转换
4.枚举类型(enum)
5.常量(Constants),例如const string
DL(Data Layer),数据访问层,与数据库,数据源进行直接交互,以SQL Server为例,调用SQL script或Stored Procedures,以Excel为例读取Excel或写入Excel
1.XXXDL,定义数据逻辑方法
2.DO(Data Object),数据对象,与数据库表,字段对应
3.Enums
4.Constants
Utilities(Helpers),通用方法,多次调用,或需要引用一些特别的dll,任何层都可以访问