三层架构思想

来源:互联网 发布:手机网络配置怎么设置 编辑:程序博客网 时间:2024/05/19 19:56

       软件系统最常用的一般会讲到三层架构,其实就是将整个业务应用划分为表示层、业务逻辑层、数据访问层等,有的还要细一些,通过分解业务细节,将不同的功能代码分散开来,更利于系统的设计和开发,同时为可能的变更提供了更小的单元,十分有利于系统的维护和扩展。

常见的三层架构基本包括如下几个部分,如图所示。

 


数据访问层 DAL:用于实现与数据库的交互和访问,从数据库获取数据或保存数据到数据库的部分。

业务逻辑层 BLL:业务逻辑层承上启下,用于对上下交互的数据进行逻辑处理,实现业务目标。

表示层 Web:主要实现和用户的交互,接收用户请求或返回用户请求的数据结果的展现,而具体的数据处理则交给业务逻辑层和数据访问层去处理。

日常开发的很多情况下为了复用一些共同的东西,会把一些各层都用的东西抽象出来。如我们将数据对象实体和方法分离,以便在多个层中传递,例如称为 Model。一些共性的通用辅助类和工具方法,如数据校验、缓存处理、加解密处理等,为了让各个层之间复用,也单独分离出来,作为独立的模块使用,例如称为 Common

此时,三层架构会演变为如图所示的情况。

 



业务实体 Model 用于封装实体类数据结构,一般用于映射数据库的数据表或视图,用以描述业务中客观存在的对象。 Model分离出来是为了更好地解耦,为了更好地发挥分层的作用,更好地进行复用和扩展,增强灵活性。

通用类库 Common:通用的辅助工具类。

 对数据库的共性操作抽象封装成数据操作类(例如 DbHelperSQL),以便更好地复用和使代码简洁。数据层底层使用通用数据库操作类来访问数据库,最后完整的三层架构如图 14-3所示。

最后完整的三层架构


数据库访问类是对 ADO.NET的封装,封装了一些常用的重复的数据库操作。如微软的企业库 SQLHelper.cs,动软的DBUtility/DbHelperSQL等,为 DAL提供访问数据库的辅助工具类。

现在我们来看下一个具体的例子:

解决方案整体架构:


再来看看DAL层的具体实现:操作共数据库

再来看看BLL层的实现:


还有一个model:主要是业务实体类

     using' namespace Model{

         public class Class{

                           public int ClassID{get;set}

                           public string ClassName{get;set}

                            public int GradeID{get;set}

}


}

0 0