学JavaEE的5层 有感

以我之前的iOS所经历,一般项目中用到的MVC设计模式(MVVM)

原有的mvc结构改成如下:

1view层:显示层。

2control层:业务层,集合了各种action。

3service层。

4DAO层。

原来的model层不见了,增加了service层和DAO层。DAO,即Data Access Object,数据访问接口,数据访问:顾名思义就是与数据库打交道。

在这个结构中,control不直接和DAO联系,

需要操作数据的时候,通过service层访问DAO层来实现。

service层做的事情,不仅仅是调用DAO操作数据,还会包含了一定的业务逻辑。整个程序的设计,也变成了针对服务进行设计。

这样做的好处是:

1control层中的action得以精简,因为action中的一些逻辑,被重构成一个个的服务。而不同的action也可以重用服务了

2只负责和数据打交道的DAO层,相比之前的model层,也得以精简(DAO层尽量只做最原子的数据操作,不同数据操作之间的联系,这边不考虑,那是service层的事情)。

3service层可以实现很大程度上的代码复用,程序的功能封装更清晰了。

4由于service层更加清晰的定义了应用程序的边界,那么对于各个service函数(对应某个服务/应用),要做到自动化测试就方便多了。WEB程序如何做到能方便的进行单元测试,这是一直困扰我的难题,这样的设计似乎真的可行了~

5开发人员的工作分配,理论上真的可以按层次划分了。只是理论上~

同时,这样的设计模式也是存在一定的缺点的:

层次太多,刚接触的开发人员理解起来比简单的mvc结构费时;

service层的设计需要一定的功力,因为action中和model层的逻辑在很大程度上转移到这里了。

但整体上看,serviceLayer的引入,更加清晰的定义了应用程序的边界,提供了一系列可以重用的操作集合。这对于网站的可扩展性和可维护性是非常有帮助的。

当然,如果网站的业务逻辑并不复杂,完全没必要用这样的设计。过度设计是万恶之源~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 传统模式下的开发MVCMVVM基于面向协议MVP的介绍MVP实战开发说在前面:相信就算你是个iOS新手也应该听说过...
    行走的菜谱阅读 8,398评论 1 5
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,610评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,025评论 25 709
  • 小咪刚到我家的时候,是个十足地“大胖子”,曾经一度我想让它减肥,但仅仅是想想而已。因为我低估了它喊饿时候的烦人程度...
    苏缪阅读 1,477评论 3 4
  • 眼看着上一篇在几个平台的数据实现飞跃,粉丝量翻番,欣慰之余,陷入寝食难安地焦虑。本来是个说真话的树洞,突然来了很多...
    楚雯谈心阅读 4,090评论 0 0

友情链接更多精彩内容