Java为什么要分Service层、DAO层和Controller层?

体娱   2024-10-07 20:00   山东  

1、炖鱼

看过一个故事,是一个炖鱼的故事。

主人公是一个美国人,他发现一个问题,妈妈炖鱼的时候总是把鱼给弄成2段!

然后,他就很奇怪,问原因!

妈妈说:“我也不知道怎么回事,反正我跟外婆学做鱼的时候,她就是这么做的!”

终于,满怀疑惑的他终于见到了外婆,问了一下原因!

原来是这样,她外婆年轻的时候,就是在二战时期。

战时的物资比较紧张,他们又到处流浪,只能带一口小锅。如果炖鱼,鱼就放不下,于是她只能弄成2段才行!

谁知道,这个动作居然成为了家族习惯,传递到了他的外孙这里!

在Java这边,也是这么回事!

题目里面的Service、DAO、Controller其实是典型的Model-View-Controller结构,就是著名的MVC架构。

Java早期的时候,Java的创造者Sun提供了很多实例,其中有一个是PetShop(宠物商店)程序。

在这个PetShop里面,就是MVC结构。

作为一门新技术,初学者肯定都是学习“最佳实践”,所以很多Java程序都是仿照MVC架构!

炖鱼要分2段,Java分3层,都是祖宗之法!

2、斯坦福监狱实验

那Java分这么多层有用吗?

肯定是有用的!

我们继续来讲另外一个故事。

美国有一个著名的心理学教授,叫菲利普津巴多,他有一个非常著名的实验,关于人性的特别实验。

实验的名字叫“斯坦福监狱实验”。顾名思义,就是在监狱里面进行的一场实验。

津巴多教授找了很多学生,这些学生都是一些平时生活中的优秀人才,平时都待人非常有礼貌,学习成绩也都很突出!

津巴多把这些人分为2组,一组扮演监狱的工作人员,就是牢头;另外一组扮演罪犯。

在实验之处,2组人并没有意识到严重之处,并且都嘻嘻哈哈!

但是,在实验的第二天,就发生了冲突,伴随着牢头对罪犯的体罚。

从第四天开始,扮演“牢头”的工作人员的措施就开始升级,包括不让“罪犯”睡觉,言语侮辱。

罪犯也很快进入了角色,有人还出现了“精神崩溃”的情况!

终于,在第6天的时候,仅仅6天,实验被迫终止!

那这个故事说明了一个问题-角色的重要性!

如果把人置身于一定的情景中,他就会不自觉随着环境进入角色其中,并发挥自己特定的功能!

当开发进行了分层,业务人员就可以专心于逻辑,数据库开发就可以专注于数据库的设计和优化!

分工明确,责任到位!

最幸运的事情-不是“牢头-罪犯”分组!

3、7秒

徐志摩有一首诗,叫《阿诗玛》,下面是一个片段:

    传说鱼的记忆只有7秒 
七秒后便不记得
过往物事了
所以小小的鱼缸里
它也不觉得无聊
因为7秒后
每一寸游过的地方
又变成了新天地...
它在这7秒里
不断轮回不是为了遗忘
而是为了铭记...

是的,鱼的记忆只有7秒。因为它在鱼缸里面并不是无聊,因为7秒之后就变成了一个新的天地!

人当然不是鱼,Java程序员更不是!

但是根据人们的实践,一个代码片段最好不要超过一个屏幕的大小。IBM的代码手册里面,阿里巴巴的Java手册里面都给出了长度建议。

既然需要把代码拆分,为什么不能按照功能拆分呢?譬如M-V-C。

总结

东方叶落花千树,更吹落,星如雨!

Java不是也有Package、interface、Class,分离并不稀奇!

我是明月,

分开是为了更好的相聚,

送给Java Boy and Girl!

明月三千
将进酒,杯莫停。与君歌一曲,请君为我倾耳听。荔枝成为linux大师!
 最新文章