zoukankan      html  css  js  c++  java
  • 数据参数三层学习总结

    题记:写这篇博客要主是加深自己对数据参数的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

         

        三层结构的分别方法分为两种即:物理和逻辑上的分别。物理上的分别如图:

        数据和参数

        

        逻辑上的分别:UI(表示层)BLL(业务逻辑层)、 DAL(数据访问层)

        本篇博客说逻辑上的分别:

         

        UI(表示层):表示层指直接与用户交互的。位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操纵的界面。提现一个准则:用户至上,兼顾简介。

        BLL(业务逻辑层):

        DAL(数据访问层):简单的说就是和数据源打交道,即:加载(select)、写入(insert/update)、删除(delete)数据。其它的数据访问层不关系。

        在我们软件计划的过程中,一般还有一个实体层(Model层),它不属于三层中的任何一个层,但是它的数据却要表现在所有的三层中。即UIBLLDAL中都需要引用它。

        每日一道理
    成功的花朵开放在啊勤劳的枝头,失败的苦果孕育在懒惰的温床之中。

        实体层的作用:

        1.对于大批的数据来讲 用变量做参数显示不合适 比如 我要把某个先生的所有信息传到上层 包括姓名 春秋 学号 班级......如果拿变量做参数那在你的方法中起码有N个参数 很容易形成参数匹配上的错误 而如果拿实体对象做参数则方便的多,只要传一个先生实体就能够了,然后在方法里通过get()set()属性获得或者设置实体对象里的成员属性值

         

        2.实体对象现实上是对应着数据库里的每张表的,我们把内外的字段封装在1个实体对象里 当你想用哪个字段 你就就通过该实体对象的get() set() 把那个字段提取出来这比你临时创建1个变量要灵巧的多 而且便于程序的维护和扩展.在现实的3层结构开发中,专门有个实体层,他的作用就是便于层和层之间的数据传递

         

        3.实体表现了面向对象程序开发的思想,把大批的数据进行封装 然后传递.当然 如果只是1,2个参数,那么传递实体或者传递变量都可以。

        

        在具体的应用过程中,我们需要按照一定的准则:

         

        UI只担任显示和采集用户操纵,不包含任何的业务相关的逻辑处置;

        BLL担任处置业务逻辑。通过获得UI传来的操纵指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处置。处置实现后,返回须要数据给UI。

        DAL只提供基本的数据访问,不包含任何业务相关的逻辑处置; 

        

        在我们应用visual studio 学习的时候,我们需要对三层进行指定,DAL/BLL/UI分别在不同的程序集中。

        各个层之间的引用关系

        UI -> BLL ->DAL

        DAL所在程序集不引用BLL和UI

        BLL需要引用DAL

        UI直接引用BLL,可能会直接引用DAL

        三层的优缺陷:

        

        长处

        1、开发人员可以只关注全部结构中的其中某一层;

        2、可以很容易的用新的实现来替换原有层次的实现;

        3、可以降低层与层之间的依附;

        4、有利于标准化;

        5、利于各层逻辑的复用。

        6、结构更加的明确

        7、在前期维护的时候,极大地降低了维护成本和维护时间

        缺陷
    1、降低了系统的性能。这是不言而喻的。如果不采取分层式结构,很多业务可以直接拜访数据库,以此获得相应的数据,如今却必须通过中间层来实现。
    2、有时会导致级联的修改。这类修改尤其表现在自上而下的方向。如果在表示层中需要增长一个功能,为保证其计划符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增长相应的代码。
    3、增长了开发成本。

        这些就是我对于三层的理解,有些不到之处欢送指正。

        

    文章结束给大家分享下程序员的一些笑话语录: AdobeFlash拖垮Windows拖垮IE!又拖垮Linux拖垮Ubuntu拖垮FirxEox!还拖垮BSD拖垮MacOS拖垮Safri!简直无所不拖!AdobeFlash滚出网路世界!不要以为市占有率高就可以持续出烂货产品!以后替代品多得是!

  • 相关阅读:
    P4294 [WC2008]游览计划(斯坦纳树)
    CF1056E Check Transcription(SA)
    CF1391D 505(状压dp+思维)
    CF56E Domino Principle(BIT+dp)
    P3402 可持久化并查集
    可持久化平衡树
    前端网页的懒加载
    多种认证、授权模型的比较
    CSS变量(自定义属性)实践指南
    SCSS提取和懒加载
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3078695.html
Copyright © 2011-2022 走看看