Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Design Pattern & UML  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 读代码有感
haibo



CJSDN高级会员


发贴: 322
积分: 71
于 2008-11-26 12:18 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
最近读了一些同事写的代码,其实就是个简单的功能块,,发现被他写的又是接口,又是工厂模式什么,看了好几个类和接口后,东找西找才明白最后要做的事是什么,真是让人啼笑皆非,模式也被滥用了。其实这么简单的一个功能块,你就以最简单的方式写出来不就行了,这样硬套模式,反而让人摸不着头脑。写到这里可能有人拍砖,说就怪老汉我不懂模式,与同事交流起设计来没有“共同语言”,然而老汉我真的就不喜欢这种把简单问题复杂化的方式,一段本来几十行代码就能解决的事情,非弄得几个类和接口来协作,我觉得一方面是可读性不太高,另一方面是执行效率不高,新类的装入与垃圾回收,不必要的函数调用其实都是一笔开销。
写到这里,估计还有一部分人认为这时候应用模式应该是对的,我们姑且不谈这个,想想模式的初衷是什么:易扩展,减少copy&paste提高效率,易读性。这里除了“易扩展”,其他两项应用到这里很明显是牵强的,再说几十行代码就能解决的东西谈扩展性,我觉得是没事找事。
把简单的事情搞复杂,很多人都很擅长,但是把复杂的事情搞简单的人却很少。不禁让我联想到一个人和一间房子,房子空空的就一个人住,日常用的东西很少,可这人非要把这些东西分门别类的放到不同的房间去,,每天用的时候各个房间乱跑,,,其实他只要放到一个房间里就行了,伸手即取,,,,
总结:模式应用要遵循他的初衷--易扩展,提高效率,易读,,,不可滥用

其实我相信,好的模式是从你的现有代码里提炼出来的,,一开始建工程,建类,建功能模块时就使用模式,,你一定要再三斟酌是否有必要




作者 Re:读代码有感 [Re:haibo]
xuxiaolei

^_^



发贴: 169
积分: 23
于 2008-11-26 16:06 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
不要为了模式而模式,有需要才用


http://xuxiaolei.javaeye.com
作者 Re:读代码有感 [Re:haibo]
iceishot





发贴: 13
积分: 0
于 2008-11-29 13:33 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我总结的应用模式的时机:

当要复制代码时-即重用时
当要修改代码时-即扩展功能时
当要分解大类时-即重构时

一般来说,除非非常熟悉的功能代码可以在着手前就考虑模式设计,否则直接写好了,不要让设计拖延了思路的速度。



作者 Re:读代码有感 [Re:haibo]
demander_huang





发贴: 1
积分: 0
于 2008-12-20 20:31 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我是作二次开发的,模式用得相对较少。
不过我觉得模式知道就好,代码是在需要时才重构成模式。




flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923