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!