锁定老帖子 主题:“过度设计”之真实例子
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-09-29
lpn520 写道 wangking717 写道 真想看看那个HELLOWORD分8个的代码,让我见识一下。
让你见识一下传说中的8个文件: 前端 helloWord.jsp //页面文件,不用说了 helloWord.js //javascript文件 Struts的Action,就叫动作层吧 HelloWordAction.java //Action类文件,客户端请求到这个类上 业务层 HelloWordService.java //业务接口, 还用了一套传说中的“面向接口编程” HelloWordServiceImp.java //业务实现类,实现上面定义的接口 DAO层 HelloWordDao.java //数据操作类,关于HelloWord业务的数据操作都在这里 HelloWord.java //HelloWord表的ORM的对象 HelloWord.xml //HelloWord表操作的SQL语句,ibatis的sqlmap 这不是很正常的嘛。 |
|
返回顶楼 | |
发表时间:2010-09-29
传说中的应届毕业生!
|
|
返回顶楼 | |
发表时间:2010-09-29
我们的还好 后台CTO一人搞定 , 你想要什么数据 他用JSONArray 返回给你, 然后页面的设计 数据的填充 效果的展示 想怎么弄就怎么弄。 玩转JS 呵呵
|
|
返回顶楼 | |
发表时间:2010-09-29
ggpp224 写道 传说中的应届毕业生!
|
|
返回顶楼 | |
发表时间:2010-09-29
rocketball 写道 lpn520 写道 wangking717 写道 真想看看那个HELLOWORD分8个的代码,让我见识一下。
让你见识一下传说中的8个文件: 前端 helloWord.jsp //页面文件,不用说了 helloWord.js //javascript文件 Struts的Action,就叫动作层吧 HelloWordAction.java //Action类文件,客户端请求到这个类上 业务层 HelloWordService.java //业务接口, 还用了一套传说中的“面向接口编程” HelloWordServiceImp.java //业务实现类,实现上面定义的接口 DAO层 HelloWordDao.java //数据操作类,关于HelloWord业务的数据操作都在这里 HelloWord.java //HelloWord表的ORM的对象 HelloWord.xml //HelloWord表操作的SQL语句,ibatis的sqlmap 这不是很正常的嘛。 +1 |
|
返回顶楼 | |
发表时间:2010-09-29
jasph77 写道 构架师 自然有架构师考虑。。
要不然人家怎么坐上这个位置,你还是一个普通的程序员。 架构师也是个人,他的架构必然也有不完美地方。 最讨厌那种,整天说这个不好、那个行,自己又没解决方案。 确实,以前javaeye上有篇文章说的就是别老骂别人的代码烂,说的很在理。在你没完全理解别人设计的思路之前千万不要妄下结论。别人这么设计是有他的道理的,只是有些原因你还不能理解。你在没有完全理解前就说他过度设计只能说你学的还不够。再过2年你就不会这么说了。 |
|
返回顶楼 | |
发表时间:2010-09-29
lpn520 写道 wangking717 写道 真想看看那个HELLOWORD分8个的代码,让我见识一下。
让你见识一下传说中的8个文件: 前端 helloWorld.jsp //页面文件,不用说了 helloWorld.js //javascript文件 Struts的Action,就叫动作层吧 HelloWorldAction.java //Action类文件,客户端请求到这个类上 业务层 HelloWorldService.java //业务接口, 还用了一套传说中的“面向接口编程” HelloWorldServiceImp.java //业务实现类,实现上面定义的接口 DAO层 HelloWorldDao.java //数据操作类,关于HelloWorld业务的数据操作都在这里 HelloWorld.java //HelloWorld表的ORM的对象 HelloWorld.xml //HelloWorld表操作的SQL语句,ibatis的sqlmap 看了这个分层,我怎么觉得是你的想法有问题 |
|
返回顶楼 | |
发表时间:2010-09-29
最后修改:2010-09-29
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 |
|
返回顶楼 | |
发表时间:2010-09-29
呵呵 这个8个文件的设计是比较正常的老式的设计。最近的设计一般都会简化。
helloworld.js这个文件可省,可以写在jsp中,这样减少很多文件,减少很多代码查找和切换快捷键,也减少了http请求数。 service接口可省,直接用实现类即可。这和面向接口设计比较违背,不过多数情况下的确是个累赘。 serviceimpl多数情况下(增删改查)也可以省略掉,action直接调用dao即可。除非有比较复杂的业务操作和多dao关联。 dao可以用泛型简化通用操作,并用代码生成器生成。 这样看来,仅仅需要些的就是jsp action (serviceimpl) 代码已经非常简化了。 |
|
返回顶楼 | |
发表时间:2010-09-29
xhdwell 写道 jasph77 写道 构架师 自然有架构师考虑。。
要不然人家怎么坐上这个位置,你还是一个普通的程序员。 架构师也是个人,他的架构必然也有不完美地方。 最讨厌那种,整天说这个不好、那个行,自己又没解决方案。 确实,以前javaeye上有篇文章说的就是别老骂别人的代码烂,说的很在理。在你没完全理解别人设计的思路之前千万不要妄下结论。别人这么设计是有他的道理的,只是有些原因你还不能理解。你在没有完全理解前就说他过度设计只能说你学的还不够。再过2年你就不会这么说了。 同意楼上的, 只要不是像楼主说的紧耦合, 合理的分层是必要的, 也许今天理解不了, 不代表人家的的设计没道理. |
|
返回顶楼 | |