是什么:
三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(Presentation layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。——来自百度百科
初了解三层,我第一想到的例子是:医生(动手术)、助理、器具储物柜。:医生提出用哪把刀,助理根据医生的要求,在盘中拿相应的器具。
但看了些博客:举的是顾客、厨师、采购员的例子。这和我的例子有些冲突:我的储物柜(DAL)是死的,不能做判断思考,但采购员是可以思考的。
我本以为:DAL层是全根据BLL层支配的,但其实DAL层也是有自己的判断的。所以,觉得顾客,厨师,采购员的例子更贴切。
表示层(UI)
向用户展现特定业务数据、采集用户的输入信息和操作。原则:用户至上、兼顾简洁
业务逻辑层(BLL)
从DAL中获取数据,以供UI显示用
从UI中获取用户指令和数据,执行业务逻辑
从UI中获取用户指令和数据,通过DAL写入数据源
数据访问层(DAL)
从数据源加载数据(Select)
从数据源写入数据(Insert/Update)
从数据源删除数据(Delete)
如何用:
应用原则:
UI:只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。
BLL:负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI.
DAL:只提供基本的数据访问,不包含任何业务相关的逻辑处理。
引用原则:
DAL不引用BLL和UI;
BLL需要引用DAL;
UI直接引用BLL,可能间接引用DAL;
避免互相引用。
即:
职责机制:
UI--->BLL---->UI(用户发出请求,经处理,对数据库进行处理)
UI---->BLL--->DAL---->BLL--->UI(用户发出请求,经处理,对数据库进行处理
后,需在经处理给用户一个反馈)
总结:
三层各司其职,信息顺序传递。BLL层起着承上启下的作用,根据UI的请求,让DAL在数据库调取、处理相应的数据,必要的情况下,再将数据传给UI,显示给用户。总言之:三层架构目的:也是解耦和......