1.理论:
java设计模式的基础思想之一:依赖于抽象不依赖于实现,给调用者提供的应该是接口或者抽象类,而实现者可以实现或者继承接口或者抽象类来满足调用者,这样调用者不必知道实现者怎样操作,实现者也可以根据具体情况去实现,这样去除了耦合。
2.实例:
List getList(){ (1)
List list = new ArrayList();
return list;
}
Vector getList(){ (2)
Vector list = new Vector();
return list;
}
上述两段代码,第一段(1)使用List接口实现,客户程序不必关心你用的是ArrayList还是Vector,哪天你因为需要改成
List getList(){
List list = new Vector();
return list;
}
此时你只需要改变容器类,而客户程序一点都不要改,而第二段(2)就会造成很大的麻烦,首先你自己需要改,调用你的程序也需要修改,十分的麻烦!
3.总结:
Collection下有List、Set两个接口,各自有不同的特点。首先List:有序、允许重复值、有索引(可使用for循环),它包含:Vector、ArrayList、LinkedList
Set:不允许重复着、无序、没有索引,它包含:TreeSet、HashSet、LinkedHashSet(有序)
总之,使用接口类实现方法的定义最好。