精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-26
charon 写道 网上有个评论很经典,老马不应该拿一个具体类和一个接口去比较。
要比较,就去和LinkedList比,这个实现了6/7个接口,实现的方法数目不比ruby的那个少,所谓的first/last也都有。 学了ruby之后,看java代码的时候不带有色眼镜,也把ducking type的那一套套到java代码上去,比如一个LinkedList就提供了一个隐含的ILinkedList接口,那就一切ok乐。 记得有个C#大佬死命的推荐具体类,建议除非特殊情况,只要能够用具体类的地方,都不要搞出一个接口来. 其实也非常贴合ducking type的思想精髓,在java/C#中,interface实际上是显式的接口,看着不顺眼就不用,直接使用依着于具体类的隐式接口吧。好处是,显式接口一旦发布,修改是很忌讳的,而具体类的公共方法就没有这个心理负担,虽然实质上是一回事情。 不过这些都是TDD/测试先行带来的间接效果,没有这个前提,别的都是白扯. 切中要害。我觉得老马是忽略了接口也有语义这个背景,所以才自己忽悠了自己。 |
|
返回顶楼 | |