zoukankan      html  css  js  c++  java
  • 三层结构——理论篇

    为什么要分层?

    1、开发者能够仅仅关注整个结构中的当中某一层;2、能够非常easy的用新的实现来替换原有层次的实现;3、能够减少层与层之间的依赖;4、有利于标准化;5、利于各层逻辑的复用。6..方便团队分工

    分层:

    将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据訪问层(DAL)。区分层次的目的即为了高内聚,低耦合的思想。



     1. 表现层

    位于最外层(最上层),离用户近期。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。它是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包含系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。


     2. 业务逻辑层

        业务逻辑层(Business LogicLayer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,非常多时候,也将业务逻辑层称为领域层。业务逻辑层在体系架构中的位置非常关键,它处于数据訪问层与表示层中间,起到了数据交换中承上启下的作用。

        因为层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有不论什么影响。假设在分层设计时,遵循了面向接口设计的思想,那么这样的向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。

        正由于如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,由于它扮演了两个不同的角色。对于数据訪问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,怎样实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。


    3. 数据訪问层

    有时候也称为是持久层,其功能主要是负责数据库的訪问,能够訪问数据库系统、二进制文件、文本文档或是XML文档。     简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。假设要增加ORM的元素,那么就会包含对象和数据表之间的mapping,以及对象实体的持久化。

    缺点

      1、减少了系统的性能。这是不言而喻的。假设不採用分层式结构,非常多业务能够直接造訪数据库,以此获取对应的数据,现在却必须通过中间层来完毕。2、有时会导致级联的改动。这样的改动尤其体现在自上而下的方向。假设在表示层中须要添加一个功能,为保证其设计符合分层式结构,可能须要在对应的业务逻辑层和数据訪问层中都添加对应的代码。

        三层架构并不能提高项目的执行效率,相反因为表现层仅仅能訪问逻辑层,再逻辑层訪问数据訪问层,因此牺牲了效率。但这一缺陷比起它的优势,在如今硬件品质快速发展的时代差点儿能够忽略不计。

        在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。完好的三层结构的要求是:改动表现层而不用改动逻辑层,改动逻辑层而不用改动数据层,否则你的应用是不是多层结构,或者说是层结构的划分和组织上是不是有问题就非常难说.不同的应用有不同的理解,这是一个概念的问题.

     

  • 相关阅读:
    斐波那契数列 的两种实现方式(Java)
    单链表反转
    单链表合并
    两个有序list合并
    list去重 转载
    RemoveAll 要重写equals方法
    Java for LeetCode 138 Copy List with Random Pointer
    Java for LeetCode 137 Single Number II
    Java for LeetCode 136 Single Number
    Java for LeetCode 135 Candy
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4258938.html
Copyright © 2011-2022 走看看