能不能不extends Controller呢??

AntMaster 发布于 2012/03/21 01:59
阅读 2K+
收藏 0

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

Controller 能不能不extends Controller呢??simple pojo OK?
加载中
1
紫电清霜
紫电清霜
继承之后拥有了很多Controller里提供的快捷的方法,确实好用;但是老师教育我们不要随便乱用继承,从此就根深蒂固了。有些时候“教条主义”真是害人不浅。
紫电清霜
紫电清霜
回复 @JFinal : 嗯嗯:)
JFinal
JFinal
回复 @紫电清霜 : 如果一个类是专门为继承设计的,那么使用继承就毫无问题
紫电清霜
紫电清霜
第三,rails里是这么做的,继承Controller,java应该也可以吧,最后,万事万物有利必有弊,有弊比有利,取向和价值观不同吧,如果要彻底的让pojo不掺杂逻辑,确实便于解耦。PS:我是个新手,对oo的哲学和思想掌握的不是很好,资历尚浅,说的不科学合理,别介意哈! :)
紫电清霜
紫电清霜
回复 @Mr.CT : 组合倒也不错了,但是第一,写起来可能会是“controller.getXxx()”的样子,比起直接“getXxx()”,稍微麻烦了点,嗯,而且第二,extends过来的方法,都是很有用的,Controller全力为子类服务,提供工具,不会出现“继承了些无用的方法”的尴尬情况;
AntMaster
AntMaster
可以用组合模式。
0
JFinal
JFinal
这个问题相当有价值,JFinal的核心设计目标是开发效率极高,代码量极少。为了达到这个目标,经过权衡不能是 simple pojo。另外MVC 架构中的 Controller 做成 pojo个人愚见是没有什么意义的,做成pojo本身的目的是想去除依赖,但真正想在Controller中去除依赖基本是不可能的,例如使用Struts2时虽然Controller可以做成pojo,但你仍然可能要使用HttpServletRequest、HttpServletResponse、HttpSession甚至ActionContext。在Spring中也是一样,Controller仍然要跟Spring耦合。
0
JFinal
JFinal
以前用过很久的Struts Spring Hibernate 组合,2010年4月前一直是SSH的坚定用户,后来离职去了家新公司采用ruby on rails 开发项目几个月,对俺这个 Java 程序员冲击太大了,因为rails开发效率太高了,代码量太少了,但rails同时也少了java的一些优点, 后来俺一直在思考一种开发方法: 在拥有 Java 语言所有优势的同时再拥有 ruby 、 python 等动态语言的开发效率。JFinal就是基于这个出发点而开发的。Java开发者可能一时很难接受非Pojo,尽量不用继承而用接口这类开发观念,而且Java开发领域个人愚见过于学术化,所以java世界很多的规矩,很多的束缚,欢迎各位指正,以上仅个人愚见 ;)
0
a
alvinte
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
JFinal
JFinal

引用来自“alvinte”的答案

不好意思,问个弱弱的问题。

simple pojo啥意思?为什么叫做pojo呢?又是如何simple的呢?

simple pojo 是指简单的java对象,就是因为它没有继承类也没在实现接口,所以与系统其它部分无耦合。
walker2011
walker2011
学习了!
0
我心悠悠
我心悠悠
JFinal 有没有社区?类似QQ群,微博什么的!!表示很关注!!
JFinal
JFinal
@wyq_wzw 是个好办法,这就弄个群去咯 :)
walker2011
walker2011
@JFinal : 弄个QQ群吧,我也有许多问题想讨论一下,最近无聊,想学点新东西,看了JFinal,感觉设计思想还不错!关注!
JFinal
JFinal
JFinal去年4月份的时候第一版就开发完了,由于本人一直在创业,所以没有时间上线开源,最近抽了点时间写放在google code以及OSChina上了,社区也正在准备中 jfinal.com 域名早在一年前我就已经注册了。JFinal的目标是让Java开发者也能像ruby python开发者那样迅速地开发项目,并且还要保障代码量少以及代码质量高
0
sNve
sNve
JFinal 极速开发  (222478625)  
0
walker2011
walker2011
Controller extends Controller想要达到什么效果的?偶是菜鸟,没看明白!
0
JFinal
JFinal
一旦YourController extends Controller 完以后,你的Controller 便立马拥有了很多方便的功能,可以辅助你做完控制器的事情,例如,getXxx(...)系列方法可以轻松得到参数并且能转换类型,renderXxx(...)系列的方法可以轻松渲染视图,getFile(...)能获取上传到的文件,getModel(...)参获取表单提交的model
0
欧少
JFinal
JFinal
@Mr.CT : Spring3 MVC没有看过,不知道他是怎么做的,改天看看去,如果Spring3 MVC中既不用继承,也不用Controller内部代码中依赖框架API,那确实就相当地牛了
JFinal
JFinal
@Mr.CT : Spring MVC 有时不也是 return new ModelAndView(...) 么,这其实也是一种耦合,只是形式不同而已,继承也不完全是毒药,用得适当也是可以的,其实rails 里面大量使用了继承,所以才能有超高的开发效率
AntMaster
AntMaster
在设计一个框架中,extends的使用是要十分谨慎的,这不是单纯藕合问题,有兴趣可以参考一下Spring3 MVC,做的很好!
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部