关于分层架构
Posted fabao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于分层架构相关的知识,希望对你有一定的参考价值。
分层架构的由来
以Web开发为例子。
一开始,人们把前端代码+数据库操作+逻辑都写在一个文件中。
但是后来发现这样容易乱,于是开始分层。
主要有两种思想:
1是,页面只负责显示,后端负责逻辑。
2是,数据库操作,逻辑分离。
前者靠MVC实现。
后者靠三层实现。
单纯的MVC
在mvc中,
Controller负责接收view的参数;
调用Model处理;
然后讲结果返回给View。
Controller是前后联系的中介。
所谓的分离,其实就是把C当作统一的前后联系的中介。
把C的文件删掉,就算是真的分了。
---------------------------------------------------------------------------------
可以看出单纯用MVC的话,
Model一定是充血模型,
也就是既包含数据,
又包含对数据的操作。
因为C只是前后联系的中介。
再加上三层
这个时候,后端可以继续分出三层来了。
也就是将充血实体类,进一步拆成贫血实体类+BLL+DAL。
三层里的UI层实际就是mvc中的V和C。
最后
MVC+三层分好以后,我们发现程序被分成了:
贫血实体+DAL+BLL+Controllers+Views
这样5个部分。
个人感觉
之前在学校的时候,我以为MVC和三层是一些过时的东西,因为听的频率高。
现在实际看了目前的一些java和C#的流行框架后,才知道这都是正在使用的东西。
通过网友的文章才知道,这些东西只是历史悠久,并不是过时。
有时候个人感觉就是这么奇怪,你以为事情是这样的,而事情实际却是那样的。
也许这就是生活的乐趣之所在!
我的开发习惯
贫血实体类+Controllers+Views。
如果真的有可重用的BLL或者DAL,我会提取出方法来的。
这样写:
1.不会有充血实体类的耦合性;没有三层的联级修改。
2.这样完全就是为了开发快速。写的有条理的话,其实改起来也不慢。
我最讨厌的是什么?我最讨厌的是麻烦。所以我习惯这种写法。
关于前后端分离
前端主要工作是:展示数据,交互,调接口。
后端主要工作是:出接口,业务逻辑,数据库操作。
前后端分离在我看来是很好的一个东西。
因为我们说分了三层以后,我就可以把一个项目DAL换成另一种数据的,或者BLL里可以重用DAL的方法什么的。
但是现实中很少有真的换数据的,它给提供的重用也是比较有限的。
但是前后端分离真的是,有很多人都做了这样的实践。
最后
不管怎样。
多了解一些就好。
原理和技术了解的越多,选择就越多。
最终就越能做出符合实际的程序来。
以上是关于关于分层架构的主要内容,如果未能解决你的问题,请参考以下文章