为什么
第一次学习三层,在加上之前对设计模式的理解,突然发现原来编程是一种艺术,有一定的规律可循,却又充满创造性。回过头想起之前的VB版机房收费系统,突然觉得面向对象、分层真的是太厉害了!为什么呢?之前我们都是把程序经历的所有过程全部写在了窗体加载中,无论是逻辑判断,还是数据访问,这样牵一发而动全身,不可复用不可扩展修改代价极其高.......。而三层它将软件的体系架构分成三层,从下至上分别为数据访问层、业务逻辑层、表示层。每层专门负责自己的体系业务。由此,它的优点是非常突出的:
1、可发人员可一直关注整个结构中的其中一层。
2、可以很容易的用新的实现来替换原有层次的实现。
3、可以降低层与层之间的依赖。
4、有利于标准化。
5、有利于各层逻辑的复用。
是什么
虽然我们是夜以继日的“程序员”,但是我们平常也是要注意卫生,勤洗澡呀!洗澡时候必不可少就是热水器的使用!其实他的工作原理和三层的原理是一模一样的呀!
首先热水器有显示屏,这就是表示层(UI层),用来显示数据和接收用户输入的数据,为用户提供一种交互式的界面。用户查看温度,调节温度都是通过这一层。
其次,热水器内部会判断用户的温度调整,继而自动启动引擎启动热水出或者凉水出 。这就是业务逻辑层(BLL层),是系统中最有核心价值的部分。它集中在业务规则的制定,业务流程的实现与业务需求的系统设计。也成为领域层。
最后,水管就像是一个数据库,存放着热水以及凉水。这就是数据访问层(DAL),也称为持久层。负责数据库的访问,以及数据的增删改查。
不过看到这里要有一个疑问了,三层之间都各自处理各自的,他们之间如何联系呢?这个大家别急,业务实体来了。业务实体(Model)是贯穿于真个三层架构之中。
三层之间的关系:UI-BLL-DAL
三层经过具体细分,又分为七层:界面外观层,界面规则层,业务接口层,业务逻辑层,实体层,数据访问层,数据存储层。如右图:
怎么做
学习三层,也突然让我想到了外观模式,外观模式就特别适用于三层。所以,具体编程过程中,使用三层以及合适的设计模式,确实是一门艺术呢!