论坛首页 Java企业应用论坛

请教:关于接口的设计

浏览 70618 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-02-27  
很惊讶的发现自己的代码里面从来不写一个接口,所谓的设计就是就是划分好层次之后,就开始写各种各样的bean,需要一个新的业务功能就再业务bean中加入新的public函数。

但似乎很多场合,我看到的代码却是另一番情况,所有的调用都是通过interface,所有的返回都是interface,《设计模式》也强调系统的编写要针对接口进行。

大道理明白一些,但是实际情况是:
项目经验比较少的情况下,很难将接口一次性定义的比较全面,这就导致interfapce和class都常常要改动。在没有interface的情况下,只需要改动class。

调用接口和调用类的公用方法,有什么太大的区别吗?
   发表时间:2004-02-27  
Hi jaqwolf,
  有一种做法你可以参考一下:
项目开始初期,用到的business object可以直接用面向类的方法进行设计和编码,这样初期可以很快得出原型,做一些频繁的改动都很方便. 利用原型和用户做确认, 这样对于项目的业务逻辑了解透彻到一定的程度以后,可以开始重构,利用工具,如Eclipse的Extract Interface, 很容易就转到了面向接口.

顺便问一下,Eclipse的Extract Interface只能把Extract的interface 放在当前的package, 每次还得再移动一次,这个有点不方便.(我用的是2.1).不知道在3.0会不会有改进?
0 请登录后投票
   发表时间:2004-02-27  
哈哈,不必担心,重构和模式从来不要求一步到位,不象家电:)。
martin flower的词语就是两顶帽子,初期开发不要想灵活性,而在重构时不要考虑增加功能。等有个原型后,如上楼所说,再考虑你的设计需要哪些变化。当然这不是自己想象的变化空间,而是应该根据客户的要求求处理。当然有经验的开发者会预期一些变化,但这些变化的处理要求富有技巧,并且简明,好的灵活性就应该是仅仅是被需要的。
0 请登录后投票
   发表时间:2004-02-27  
赞同这样的方法, 不过在操作细节上面可能还值得研究研究
0 请登录后投票
   发表时间:2004-02-29  
不用接口,就好象,在数据库中不使用表之间的关联关系一样...:)
0 请登录后投票
   发表时间:2004-03-01  
Wang:
谢谢,听起来你的方法不错,我试着执行,有问题再请教。
0 请登录后投票
   发表时间:2004-03-01  
在Java中,面向对象的编程其实就是面向接口的编程。接口是非常重要的,当然你不用它,也并不是什么。
  没有一个人一开始就能很好地做到面向接口编程(面向对象的语言不是那么容易掌握),但是如果就因为不熟悉带来的更改以及其他麻烦就不采用的话,那么面向对象的设计能力是得不到提高的。
   采用接口的方式是让程序耦合度降低,内聚度提高,是增加更好的维护性。
   当然,在Java中不采用接口编程和数据库中不采用关联的比喻是非常不恰当的。数据库的关联是要合理使用(不能什么关系都用关联),而面向对象的设计是提倡都用接口的。
0 请登录后投票
   发表时间:2004-03-01  
赞同凤舞凰扬的讲法
0 请登录后投票
   发表时间:2004-03-01  
Sorry,发现自己说错话了....
我其实只想表达 O 与 R  之间有一定联系..


凤舞凰扬说的我完全赞同...:)
0 请登录后投票
   发表时间:2004-03-01  
首先阐明一下我所说的接口是指的java语言中的interface,并非广义上的接口,广义上说,任何一个public函数都可以看作接口-类于外界通信的介质。

问题的关键地方不在于接口设计的好处,看过书的人道理都是会讲的,问题在于实施。或许是我处于初级水平,的确不能再设计初期将接口定义完整,如果强行使用interface,频繁的大面积改动代码将会是家常便饭。

而且这不是麻烦不麻烦的事情,开发效率的重要性并不低于可维护性。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics