• [传智播客学习日记]三层架构简述


    这里简要总结一下三层架构的含义:三层,指的是数据访问层(DAL),业务逻辑层(BLL)和表象层(UI)。


    其实看到这三个名词就能猜出三层架构是干嘛的了:跟数据库打交道的代码全放在DAL层,那些if..else..条件判断什么的全放在BLL层,BLL层返回的结果丢到UI层显示给用户。层与层之间的关系就像服务员、前台、厨师一样,各管各的,而“菜”则是他们之间交互的一个通道,我们可以定义一个所谓的“Model层”,在这里把数据库中的表转换为对象。

    执行过程是这样的:用户在UI层填表点按钮,交给BLL层处理具体事务,然后BLL层知道要干什么了,就交给DAL层去从数据库里拿东西,然后DAL层把得到的结果return给BLL层,BLL层再returl到UI层。

    一看这套逻辑就知道这种架构的执行效率肯定高不到哪去,因为各种调用很频繁,但是它有一个很突出的好处,就是层次鲜明,分工明确,有利于程序的维护和扩展。这种架构解开了用户界面、逻辑和数据之间的耦合,容易应对变化,还是那个设计思想:比如我要给椅子染个色,总不能把椅子拆了吧?

    搭建三层架构的时候要建立4个项目:UI层用窗体或者web项目,BLL、DAL和Model都是类库,注意修改命名空间,最好都改成Xxxx.DAL这样的形式。配置文件建立在UI层。然后就是建立关联,DAL关联MODEL,BLL关联DAL,UI关联BLL和MODEL。然后分别引入所需要的命名空间。为了日后的调用,在UI层需要new一个BLL的实例,在BLL需要new一个DAL的实例。

    当写一个需求时,要从下往上写。比如我要在学生表里增加一个学生。首先需要在Model里建立一个学生类,把数据库的字段都对应到学生类的属性。然后在DAL层写数据库增删改查的逻辑,把字段对象化,然后封装成一个方法。在BLL层调用这个方法,根据需求增加一些判断逻辑,然后封装成方法。在UI层再调用这个新方法进行显示。所需要的数据都是通过一个类的对象来传递的。

  • 相关阅读:
    MTK 官方 openwrt SDK 使用
    PF_RING packet overwrites
    pycares cffi
    libevent evbuffer bug
    浮点转字符串性能比较
    重写 libev 的 EV_WIN32_HANDLE_TO_FD
    thrift TNonblockingServer 使用
    accel-pptp 部署
    boost::asio 使用 libcurl
    蜂鸟A20开发板刷 cubietruck 的 SD 卡固件
  • 原文地址:https://www.cnblogs.com/Elijah/p/2255508.html
Copyright © 2020-2023  润新知