个人对三层架构的看法

2019/02/13

个人对三层架构的看法

java web开发当中,有这么三层:controller、service、dao

分别为表现层、业务逻辑层以及数据访问层。

这样分层的好处有很多,出了问题易于调试,或者便于团队合作等等。

最重要的是,可以随时换掉其中的某一层而不影响其他层,这都是借鉴于早期的程序设计经验,计算机网络体系也是这么设计的。

在我初学时,总是认为service层就是个累赘,认为它只是对请求的转发,但是随着学习的深入、开发更复杂的应用,service层的作用就体现出来了,比如对数据的校验,或者可以调用其他service层的服务,很多复杂的逻辑都是在service 层当中完成的。

对于dao层,一般来说这层都是提供对数据库的访问接口,但并不局限于数据库,有些应用压根就不会用到数据库,它只是一种抽象。

表现层,它则可以控制前两层的数据是应该以怎样的形式进行展现,可以通过jsp或者json、xml等等,这些都可以被称作视图。

但是在实际开发当中,不应该死守这三层架构,不应该什么系统都要给他搞个三层。

无论解决什么事,应该使用更简单的方案。

比如我现在使用的这个博客系统,就是使用的三层架构,结果本来这么一个简单的系统,代码搞得无比复杂,现在半年过去了,连维护都是一个大问题。

但是有些事,自己搞搞没问题,如果在一个大团队中,还是要遵守相应的规范,不能瞎搞。

你可以尽情地在自己的项目中使用各种各样的新特性,什么lambda表达式,stream api 尽管用,

又或者只在controller调用dao,还是在servlet当中一气呵成写个又臭又长的代码,都没有问题。

三层架构,的确是一个很好的通用解决方案,但还是要适时而变,找到适合自己的。

Post Directory