对接口编程的一些思考

        对一个问题的持续深追,又想起了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的策略, 好处: 任何类都可以当接口来调用, 但也有些混乱,总是不如对接口做类型检查那样清晰.


     以上列举了些现在能想到的与接口编程相关的话题. 应该说这些概念之间是有相互交叉的, 不过先贴在这里,一是希望抛砖引玉地引起大家讨论,二是作为自己对接口编程思考的0.1版本,日后随着认识的深入及相关概念的逐步清晰再归纳总结出0.2版本来.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值