[url]http://www.iteye.com/topic/3291?page=2[/url]
[size=x-large]
1
我比较习惯于先定义接口,然后写一个抽象类类实现通用的操作,专用的操作定义为抽象方法,强制继承
类实现。这样一般的类就直接继承该抽象类,然后比较特殊的地方实现抽象方法。非常特殊的类就直接实
现接口。
我觉得这样用很方便的。
2
接口和抽象类的使用我觉得List是一个很好的诠释。
List :interface
AbstractList :Abstract class
ArrayList :Class
如果没有List这个接口,那很多返回类型应该是ArrayList,Vector,LinkedList.但大部分人一般返回类型
为List或者Collection 这是有道理的。
类似List 这样的例子其实Java代码里面很多,robbin所说的做法也是如此。
3
有人甚至认为会使用接口可以认为Java 水平或者面向对象水平有一个标志性的提高,虽然有点偏激但或
许有一定的道理。
Robbin说得对,要理解好接口、抽象类、实体类、静态工具类的设计目的及作用,让你的程序更加容易
维护,更加容易理解,呵呵
4
jaqwolf 写道
Java代码
如果没有List这个接口,那很多返回类型应该是ArrayList,Vector,LinkedList.但大部分人一般返回类型
为List或者Collection 这是有道理的。
如果没有List这个接口,那很多返回类型应该是ArrayList,Vector,LinkedList.但大部分人一般返回类型
为List或者Collection 这是有道理的。
能说说吗?
我并没有从心里接受使用interface设计的必要性,java中interface的存在似乎是解决了不能继承多个父
类。还有一个好处是,让oo的概念在java上体现的更清晰了,但是用起来麻烦啊--改得多,比如,我要
重命名一个接口,既要改动inteface又要改动class。
我并非说不使用,而是想知道如何合理使用。
另外,即便是返回一个ArrayList 又有什么不好呢?
我说一种情况吧,有如下一个方法
public Vector getUsers(){
}
你使用Vector 作为容器保存用户列表,后面你发现,你使用
public ArrayList getUsrs(){
}
可能更好,因为不需要线程同步,而且ArrayList 的效率比Vector高,
如果你一开始就使用下面的方法
public List getUsrs(){
}
那么改动的就只是你写的这个方法,对调用这个方法的代码是不需要修改的。
因为我的返回类型是List ,至于是ArrayList ,LinkedList,Vector,甚至是jakarta commons collection
的某些类,对外我是没有声明的。在这种情况下你认为返回ArrayList 好还是返回List好呢?
5.
动物的行为,例如:走、跑、趴等,可以定义为接口,而狗或猫具有这些行为,可以为抽象类,而具体的 class,就是具体类型的狗或猫了。
[/size]
[size=x-large]
1
我比较习惯于先定义接口,然后写一个抽象类类实现通用的操作,专用的操作定义为抽象方法,强制继承
类实现。这样一般的类就直接继承该抽象类,然后比较特殊的地方实现抽象方法。非常特殊的类就直接实
现接口。
我觉得这样用很方便的。
2
接口和抽象类的使用我觉得List是一个很好的诠释。
List :interface
AbstractList :Abstract class
ArrayList :Class
如果没有List这个接口,那很多返回类型应该是ArrayList,Vector,LinkedList.但大部分人一般返回类型
为List或者Collection 这是有道理的。
类似List 这样的例子其实Java代码里面很多,robbin所说的做法也是如此。
3
有人甚至认为会使用接口可以认为Java 水平或者面向对象水平有一个标志性的提高,虽然有点偏激但或
许有一定的道理。
Robbin说得对,要理解好接口、抽象类、实体类、静态工具类的设计目的及作用,让你的程序更加容易
维护,更加容易理解,呵呵
4
jaqwolf 写道
Java代码
如果没有List这个接口,那很多返回类型应该是ArrayList,Vector,LinkedList.但大部分人一般返回类型
为List或者Collection 这是有道理的。
如果没有List这个接口,那很多返回类型应该是ArrayList,Vector,LinkedList.但大部分人一般返回类型
为List或者Collection 这是有道理的。
能说说吗?
我并没有从心里接受使用interface设计的必要性,java中interface的存在似乎是解决了不能继承多个父
类。还有一个好处是,让oo的概念在java上体现的更清晰了,但是用起来麻烦啊--改得多,比如,我要
重命名一个接口,既要改动inteface又要改动class。
我并非说不使用,而是想知道如何合理使用。
另外,即便是返回一个ArrayList 又有什么不好呢?
我说一种情况吧,有如下一个方法
public Vector getUsers(){
}
你使用Vector 作为容器保存用户列表,后面你发现,你使用
public ArrayList getUsrs(){
}
可能更好,因为不需要线程同步,而且ArrayList 的效率比Vector高,
如果你一开始就使用下面的方法
public List getUsrs(){
}
那么改动的就只是你写的这个方法,对调用这个方法的代码是不需要修改的。
因为我的返回类型是List ,至于是ArrayList ,LinkedList,Vector,甚至是jakarta commons collection
的某些类,对外我是没有声明的。在这种情况下你认为返回ArrayList 好还是返回List好呢?
5.
动物的行为,例如:走、跑、趴等,可以定义为接口,而狗或猫具有这些行为,可以为抽象类,而具体的 class,就是具体类型的狗或猫了。
[/size]