前言: 首先三层架构是体现了“高内聚,低耦合”,什么是高内聚呢? 高内聚就是模块中各个元素彼此紧密相连,紧密程度高。低耦合:一个模块中,各个部分尽可能独立完成特定的子功能,关系较为简单。
三层架构
-
UI(表现层): 主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。
-
BLL:(业务逻辑层): UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。
-
DAL:(数据访问层): 与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。(当然这些操作都是基于UI层的。用户的需求反映给界面(UI),UI反映给BLL,BLL反映给DAL,DAL进行数据的操作,操作后再一一返回,直到将用户所需数据反馈给用户)
-
Entity(实体层): 它不属于三层中的任何一层,而每一层(UI—>BLL—>DAL)之间的数据传递(单向)是靠变量或实体作为参数来传递的,这样就构造了三层之间的联系,完成了功能的实现。因此它是必不可少的一层。
综上所述:三层及实体层之间的依赖关系:
综上,三层架构的优势:
- 1、结构清晰、耦合度低
- 2、可维护性高,可扩展性高
- 3、利于开发任务同步进行, 容易适应需求变化
三层架构的优劣势:
- 1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
- 2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
- 3、增加了代码量,增加了工作量
总结: 大家可以去多去搜一搜关于三层架构的例子,这样更好的去理解它,更好的去运用它。
举个例子: 顾客直接和服务员打交道,顾客和服务员(UI层)说:我要一个炒茄子,而服务员不负责炒茄子,她就把请求往上递交,传递给厨师(BLL层),厨师需要茄子,就把请求往上递交,传递给采购员(DAL层),采购员从仓库里取来茄子传回给厨师,厨师响炒茄子方法,做好炒茄子后,又传回给服务员,服务员把茄子呈现给顾客。