我最近一直在尝试扩展集合对象,而不是对我的域对象使用组合。因此,例如,我将使用这个:
public class Path extends ArrayList<PathElement> {
}
public static void main(String args[]) {
Path path = new Path();
path.add(new PathElement());
}
代替:
public class Path {
private List<PathElement> pathElements = new ArrayList<PathElement>();
/* getter/setter*/
}
public static void main(String args[]) {
Path path = new Path();
path.getPathElements().add(new PathElement());
}
这是一种常见/可接受的做法吗?有什么缺点或更好的选择吗?我可以看到的一个缺点是实现不能轻易更改,因此您不能使用 LinkedList 代替 ArrayList。