锁定老帖子 主题:请教:关于接口的设计
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-02-27
但似乎很多场合,我看到的代码却是另一番情况,所有的调用都是通过interface,所有的返回都是interface,《设计模式》也强调系统的编写要针对接口进行。 大道理明白一些,但是实际情况是: 项目经验比较少的情况下,很难将接口一次性定义的比较全面,这就导致interfapce和class都常常要改动。在没有interface的情况下,只需要改动class。 调用接口和调用类的公用方法,有什么太大的区别吗? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-02-27
Hi jaqwolf,
有一种做法你可以参考一下: 项目开始初期,用到的business object可以直接用面向类的方法进行设计和编码,这样初期可以很快得出原型,做一些频繁的改动都很方便. 利用原型和用户做确认, 这样对于项目的业务逻辑了解透彻到一定的程度以后,可以开始重构,利用工具,如Eclipse的Extract Interface, 很容易就转到了面向接口. 顺便问一下,Eclipse的Extract Interface只能把Extract的interface 放在当前的package, 每次还得再移动一次,这个有点不方便.(我用的是2.1).不知道在3.0会不会有改进? |
|
返回顶楼 | |
发表时间:2004-02-27
哈哈,不必担心,重构和模式从来不要求一步到位,不象家电:)。
martin flower的词语就是两顶帽子,初期开发不要想灵活性,而在重构时不要考虑增加功能。等有个原型后,如上楼所说,再考虑你的设计需要哪些变化。当然这不是自己想象的变化空间,而是应该根据客户的要求求处理。当然有经验的开发者会预期一些变化,但这些变化的处理要求富有技巧,并且简明,好的灵活性就应该是仅仅是被需要的。 |
|
返回顶楼 | |
发表时间:2004-02-27
赞同这样的方法, 不过在操作细节上面可能还值得研究研究
|
|
返回顶楼 | |
发表时间:2004-02-29
不用接口,就好象,在数据库中不使用表之间的关联关系一样...:)
|
|
返回顶楼 | |
发表时间:2004-03-01
Wang:
谢谢,听起来你的方法不错,我试着执行,有问题再请教。 |
|
返回顶楼 | |
发表时间:2004-03-01
在Java中,面向对象的编程其实就是面向接口的编程。接口是非常重要的,当然你不用它,也并不是什么。
没有一个人一开始就能很好地做到面向接口编程(面向对象的语言不是那么容易掌握),但是如果就因为不熟悉带来的更改以及其他麻烦就不采用的话,那么面向对象的设计能力是得不到提高的。 采用接口的方式是让程序耦合度降低,内聚度提高,是增加更好的维护性。 当然,在Java中不采用接口编程和数据库中不采用关联的比喻是非常不恰当的。数据库的关联是要合理使用(不能什么关系都用关联),而面向对象的设计是提倡都用接口的。 |
|
返回顶楼 | |
发表时间:2004-03-01
赞同凤舞凰扬的讲法
|
|
返回顶楼 | |
发表时间:2004-03-01
Sorry,发现自己说错话了....
我其实只想表达 O 与 R 之间有一定联系.. 凤舞凰扬说的我完全赞同...:) |
|
返回顶楼 | |
发表时间:2004-03-01
首先阐明一下我所说的接口是指的java语言中的interface,并非广义上的接口,广义上说,任何一个public函数都可以看作接口-类于外界通信的介质。
问题的关键地方不在于接口设计的好处,看过书的人道理都是会讲的,问题在于实施。或许是我处于初级水平,的确不能再设计初期将接口定义完整,如果强行使用interface,频繁的大面积改动代码将会是家常便饭。 而且这不是麻烦不麻烦的事情,开发效率的重要性并不低于可维护性。 |
|
返回顶楼 | |