浏览 1198 次
锁定老帖子 主题:对接口编程的一些思考
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-10
对一个问题的持续深追,又想起了Java中接口编程这个话题,这里先写下来. (深追问题的描述详见:Hibernate(十五):用Hibernate求记录总数的一个怪胎 ,Hibernate(十六): DetachedCriteria子查询与ALIAS_TO_ENTITY ,Hibernate(十七): Criteria子查询与ENTITY_MAP时的问题(续一) ) 1, 初次接触这一概念是很摸不着头脑:Collection和Map,又跟泛型混在一起, 2, 接口的好处: 为设计师而生的, 设计时不必关心实现地用接口来搭架子. 这方面例子:JDBC, JSF. Servlet 3, 正如它的名字所示, 接口就是为调用设计的, 从一个侧面也反映出Java对软件工作的支持. 4, 可以有多种实现, 像dbcp. 而在调用层面上与实现解耦合. 5, 不用地想到了Java祖先C++里的多重继承: 继承更多地是为了代码重用,但同时也肩负着调用与实现解耦合的责任. 这样就跟软件工程里"问题由专人负责"的philosophy相冲突,于是Java在继承的基础上进上步抽象,提取出接口的概念. 6,现在像Groovy这样的动态语言没接口这一概念了,而是采用Duck Typing的策略, 好处: 任何类都可以当接口来调用, 但也有些混乱,总是不如对接口做类型检查那样清晰.
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |