ArrayList<Object> list = new ArrayList<Object>();
违反情况是“避免使用类似’ArrayList’的实现类型;而应使用接口”。
以下行将纠正违规:
List<Object> list = new ArrayList<Object>();
为什么要用后者List代替ArrayList?
在具体类型上使用接口是实现良好封装和松散耦合代码的关键。
在编写自己的API时遵循这种做法甚至是个好主意。如果这样做,以后您会发现,将单元测试添加到代码中(使用Mocking技术),并在将来需要时更改基础实现会更容易。