三层学习------理论篇

    学校放假了,刚回家的孩子就像个客人被父母招待着。在放假的前几天里,你虽然开口。想吃啥爸妈都会满足你。只是好景可不长!

在我家。厨房是老妈的地盘。买菜、做饭、洗碗刷锅。一个人全包了。而在饭店吃饭呢。吃饭的人多了,顾客点的饭菜种类各不同样。前前后后,一个人忙乎。哪里顾得过来,所以饭店就有了分工。前台服务员负责将顾客点的菜上报给厨师和;厨师依据上报的菜单做菜;採购员负责柴米油盐酱醋茶。

这样,大家各司其职,井井有条。

    我们在家中吃饭比較简单,没有详细的分工。饭店就是一个复杂庞大的系统了,须要合理规划,分工明白。一个优秀的软件系统首先要有一个好框架,好的架构能够实现高内聚、松耦合。从而提高软件的可扩展性、可复用性、可维护性以及灵活性。在软件体系架构中,分层结构是最常见的。也是最重要的一种结构。微软推荐的分层式结构一般分为三层,自上至下分别为:表示层、业务逻辑层、数据訪问层。以下请看一张图。将饭店与三层式结构联系在一起。将学习融入生活。

    这里说得三层是逻辑上的划分。不要和物理三层混淆了,物理上的这三层指的是:客户机、应用server、数据库server。接下来,我们来详细认识这三层。

    表现层(UI):採集用户的输入信息和操作,向用户展现特定业务数据。通俗讲就是用户界面。即用户在使用一个系统的时候他的所见所得。

    业务逻辑层(BLL):针对详细问题的操作。也能够说是对数据层的操作,对数据业务逻辑处理。主要有三种方式:UI中获取用户指令和数据,运行业务逻辑;DAL中获取数据,以供UI显示;UI中获取用户指令和数据,通过DAL写入数据源

    数据訪问层(DAL):该层所做事务直接操作数据库。针对数据的增添、删除、改动、查找等。


    另一个实体层(类),它在这三层之间上蹿下跳,借用晨阳博客中的比喻,这个实体层好比是信件,B层就是U层和D层之间传递信件的联络员,他是不知道信件的内容的。

    在这三层中,DAL 仅仅提供主要的数据訪问,UI仅仅负责显示和採集用户操作,他们都不包括不论什么业务相关的逻辑处理。BLL负责处理业务逻辑。通过获取UI传来的操作指令,运行业务逻辑。在须要訪问数据源的时候交给DAL处理。

处理完毕后。返回必要的数据给UI

UI引用BLLBLL引用DAL,由上到下能够引用,反过来行不通。

这三层都能够引用实体层(类),但实体层不能去引用别的层。

    使用三层的优点有非常多。开发者能够仅仅关注整个结构中的某一层。有利于分工协作,减少层与层之间的依赖。当某一层须要更改时,不会影响到其他层。减少了维护成本和维护时间。

不同的业务需求调用同一个数据表时。同样的代码仅仅需写一次。有利于各层逻辑的复用和标准化,实现软件系统的高内聚。松耦合。One coin has two sides。这样做的弊端就是因为添加了中间层,不能直接訪问数据库。从而减少了系统的性能。有时会导致级联的改动,假设在表示层须要添加一个功能。为保证其设计符合分层式结构,可能须要在对应的业务逻辑层和数据訪问层中都添加对应的代码。当然也添加了开发成本。在实际的软件开发中,详细情况要详细分析,权衡好利弊。



原文地址:https://www.cnblogs.com/mqxnongmin/p/10661839.html