• N层架构的理解


    以前没太多关注各多层架构的设计,一直以来都是用的三层架构做网站,最近对N层架构有些兴趣,就稍微研究了一下,由于自己也没怎么用过,也是才学习,中间可能有些错误,请大家指正。
                ASP.NET的框架不管有多少层架构,都脱离不了最基本的三层:表现层,业务层,数据访问层。
          
          整个过程的来回都跟请求和数据有关,往右发送请求,往左响应请求返回数据。
          最简单的三层结构:Default.aspx——>BLL——>SQLHelper
                                   Default.aspx<——BLL<——SQLHelper
         多层架构既然是基于三层架构的,它是对最基础的三层结构进行再抽离,那么就可以在三层架构的基础上再至少抽出一个中间层,是最原始的三层架构之间的桥梁,它起到一个衔接作用。试想一个业务比较复杂的网站,BLL的代码量会比较庞大,基本的三层显然是不够用的。我的做法是在三层的基础之上,先给Web和BLL之间搭一座桥,我叫它BLLManager,它的作用就是来统一管理所有的BLL类;这还不够,我把和SQLHelper相关的数据访问类都放到DAL中(以前的做法是用BLL来访问SQLHelper),这就相当于业务的数据都在DAL中请求和获得;然后我再在BLL和DAL中抽出一个类DALFactory用来管理所有的DAL(除了SQLHelper)。现在基本的结构如下图(不知道我的理解对不对,希望大家指正):


          使用N层架构的效果:每一层都可以在仅仅更改很少量的代码后,就能放到物理上不同的服务器上使用,因此结构灵活而且性能更佳。此外,每层做些什么其它层是完全看不到的,因此更改、更新某层,都不再需要重新编译或者更改全部的层了。这是个很强大的功能。例如,如果把数据访问代码与业务逻辑层分离,当数据库服务器更改后,你只需要更改数据访问的代码,因为业务逻辑层是不变的,因此不需要更改或者重新编译业务逻辑层。

    下面我给了个简单的例子:
    Default.aspx

    Code

    Default.aspx.cs

    Code

    Emp.cs

    Code

    BLLManager.cs

    Code


    EmpBLL.cs


    Code


    DALFactory.cs

    Code


    EmpDAL.cs

    Code

                SQLHelper.cs我就不贴了。下面有整个源码(包含sql)的下载
                /Files/psunny/N-tier-structure.rar
    注:本文转自http://www.cnblogs.com/psunny/archive/2009/08/16/1547724.html

  • 相关阅读:
    C++中virtual(虚函数)的用法
    testlins
    MATLAB——matlab特殊符号表【转载】
    VS-按F12无法跳转到函数定义,点击右键也无法跳转
    fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
    Matlab7.1——启动时只显示Logo
    CANopen——总线基本知识
    CANopen——笔记
    ASCII表格
    Codesys——AD_DA在PID控制中的作用
  • 原文地址:https://www.cnblogs.com/weekend001/p/1555487.html
Copyright © 2020-2023  润新知