随着学习的深入才知道对于软件的设计没有最优只有更优!前段时间的设计模式让我大开眼界,这会儿的三层架构又让我不得不感叹一下:天外有天人外有人,模式过后有三层!在“高内聚、低耦合”这条路上,我们需要学得东西还很多
三层架构(3-tierarchitecture) 是基于模块化程序设计的思想,为实现分解应用程序的需求(即解耦),而逐渐形成的一种标准模式的模块划分,使得其中一个环节发生变化,只需要其它环节稍作改动即可,不会影响到整个业务。三层架构自底向上分为:数据访问层(DAL,Data AccessLayer)、业务逻辑层(BLL,Business LogicLayer)、表现层(UI,User InterfaceLayer)
概念简介:
DAL提供基本的数据访问,实现对数据的保存和读取操作,为BLL或UI提供数据服务
BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
UI负责显示和采集用户操作,为用户提供交互式操作界面。
数据传递关系:高层请求低层,低层响应高层。
实体类
在三层架构中还有一个实体类的使用,它将数据表中的每一个字段定义成属性,并将这些属性用一个类封装,这个类即被称为实体类。通过实体类,可以将数据作为对象(实体对象)来使用,使得数据可以在三层之间顺畅流转。
业务实体一般被划分到BLL,如果层次分得也可将业务实体单独作为一层,称为业务实体层,它不会引用其它三个层次的程序集,但是其它三个层次都需要引用它
依赖关系:高层依赖低层,且都依赖于业务实体
MVC与三层
在《大话设计模式》的最后提到MVC(Model-View-Controller),它包括三类对象,Model是应用对象,View是他在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。但它不是设计模式,而是一种架构模式。
三层架构与MVC最大的不同时三层中没有定义Controller的概念,而MVC也没有把业务的逻辑访问看成两个层。三层中的Model由实体类构成,而MVC的Model由业务逻辑与访问数据组成。在网上看到很多人称,MVC更快更简洁,但是也需要掌握很多编程知识,所以现在还是回到三层架构来学习吧