A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 坚持525 中级黑马   /  2014-10-16 13:26  /  1019 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在7K项目中,一开始写了这个
  1. private List<String> vechicles = new ArrayList<String>();
  2.        
复制代码
说是面向接口编程,会利于后面的扩展,是什么意思呢?

2 个回复

倒序浏览
List是个接口,用List变量接收它的子类(多态)引用,以后想更改的时候,只需要更改一下子类引用就行了,比如你以后发现这里用LinkedList代替ArrayList更好,只改第一句就行了。
高级的做法就是,你这个vechicles变量接收的实例引用通过反射去取,从配置文件中读取一个List接口的具体实现类的名称,实例化后赋给vechicles,所以以后连代码都不用改了,只改配置文件就行了。这就是面向接口编程的可扩展性。
回复 使用道具 举报
ifinver 发表于 2014-10-16 13:36
List是个接口,用List变量接收它的子类(多态)引用,以后想更改的时候,只需要更改一下子类引用就行了,比 ...

好的,学习了,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马