论坛首页 Java企业应用论坛

“过度设计”之真实例子

浏览 85177 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-10-01  
不想再引起额外的口水战,对于这种早有结论的讨论,没有任何意义。我会向管理员申请锁定,不要让错误的讨论继续误导大家的思维。
0 请登录后投票
   发表时间:2010-10-01   最后修改:2010-10-02
这个话题已经讨论的很长了,我另外开了一帖把话题集中在分层的原因上,欢迎参与
0 请登录后投票
   发表时间:2010-10-02  
lpn520 写道
hjb1029 写道
说到底,楼主还没理解mvc真正的含义,丢恒生的脸啊。

可能我需要向您学习,但请你说话还是别太绝对, 我曾经自己写了一个轻量级的MVC框架, 丢不丢恒生的脸, 不是你说得算。。。

我觉得这个问题拿出来讨论很好啊。一开始看这贴也觉得楼主好菜,但随着讨论深入发现问题远远没想象中的简单,很多我们认为理所当然的概念如果你深入讨论下去就会出现很多疑问,这才是创新的前提。
0 请登录后投票
   发表时间:2010-10-02  
downpour 写道
不想再引起额外的口水战,对于这种早有结论的讨论,没有任何意义。我会向管理员申请锁定,不要让错误的讨论继续误导大家的思维。


首先,很多人没有把帖子全部看完,很早的下结论。讨论的目的不是要引起什么口水战,而是开放思维大家讨论,在一定程度上对人都与好处,当然不免会影响部分初学者。以理服人,大家都是公平的。

开发没有什么定式,如果说JSP页面不能写Java代码是Java的习惯的,那么RoR或者ASP是不是没有存在的必要呢?

模式是双刃剑,看场景分情况,如此而已。


0 请登录后投票
   发表时间:2010-10-02  
兄弟,你思想还是太浅了。
0 请登录后投票
   发表时间:2010-10-03  
分层的多少应该取决于业务,当你能确定业务和业务的可变范围时,应该把层次尽可能减少,因为在增加层次的同时也会增加代码的可读性和复杂性。如果你确定了业务可变范围了,如你所说,只是简单增删改,对框架的质疑我觉得楼主你是一百个对的。
但有些项目会有二期三期维护,可能会有很多变化,这时候多些层次会对后期修改带来很多便利。这个时候其实可以把这些层次看作是预留接口的作用。
0 请登录后投票
   发表时间:2010-10-11  
兰州小菜,helloworld.jsp也不该写,完全可以用template.jsp代替,heolloworld.js,helloworldaction.java 通通可以用模板替代的,真正意义上只用个url传些参数就可以了。
0 请登录后投票
   发表时间:2010-10-29  
优点:细分层,明确各个层次对应的处理类,方便维护。
缺点:开发效率底,项目文件繁冗。
0 请登录后投票
   发表时间:2011-01-07  
楼主的经验应该不多吧,分层的作用还没弄明白,碰到的问题还比较少,碰到的问题多了,自然就懂了
0 请登录后投票
   发表时间:2011-01-07  
IcedCoffee 写道
lpn520 写道
jasph77 写道
构架师 自然有架构师考虑。。
要不然人家怎么坐上这个位置,你还是一个普通的程序员。
架构师也是个人,他的架构必然也有不完美地方。

最讨厌那种,整天说这个不好、那个行,自己又没解决方案。


给你看看我之前做的解决方案,同样“添加删除修改查询”,同样是Struts2+Spring+iBATIS+ExtJs

前端
helloWorld.jsp       //用过Ext的都知道,页面是不需要写HTML代码的,所以helloWorld.js直接可以省掉,直接把js写在jsp文件里,还有用EXT直接使用原生态的,封装一层只的很恶心

业务层
HelloWorldAction.java     //struts2的Action,本身就是动作的意思,为什么它不叫Controllor呢,因为控制类已经在它内部封装好了,你实现了Action接口,只要在类里写业务就可以了,再加上struts2每个请求可以对应到Action的一个个方法上,所以万恶的HelloWorldServer.java和HelloWorldServerImp.java可以去掉了

DAO层
再讨论一下DAO层,我们用了ibatis框架,他本身就是个DAO层的实现,你每个SQL调起来就像调用DAO里的每个方法一样,所以HelloWordDao.java就可以去掉了,像HelloWordDao.java里的每个方法就一条代码,有意思吗
所以只要下面两个文件就可以了
HelloWord.java          //HelloWord表的ORM的对象
HelloWord.xml           //HelloWord表操作的SQL语句,ibatis的sqlmap


无语了..那干脆dao也去掉,放进action算了...


很多时候就是可以这样,建议看看oschina掌门人写的“Spring 事务管理高级应用难点剖析”
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics