今天,公司内部举行了分层架构的讲座,虽然自己对此也知道一些,但是一直没有深入了解过,借此机会重新学习下。
先上个根据自己理解画的图,不对之处请斧正
层间关系:单调向下依赖
此图中错误划分了三层和MVC的关系,
、
谢谢指正,回头又调查了下,这个图应该比较合适
零零碎碎的一些摘录
MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开
M是指数据模型,V是指用户界面,C则是控制器,
V | View | 视图 | 视图是用户看到并与之交互的界面。 |
M | Model | 模型 | 模型表示企业数据和业务规则。 |
C | Controller | 控制器 | 接受用户的输入并调用模型和视图去完成用户的需求 |
BLL | Business Logic Layer | 业务逻辑层 | 主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。如果说数据层是积木,那逻辑层就是对这些积木的搭建。 |
USL | User Show Layer | 表现层 | 主要表示WEB方式,也可以表示成WINFORM方式。如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。 |
DAL | Data Access Layer | 数据访问层 | 主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。 |
DAO | Data Access Object | 数据访问接口 |
使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。
C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新
框架通常是代码重用
设计模式是设计重用
架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用
设计模式是大智慧,用来对软件设计进行分工;框架模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。