读书人

4.16 优先运用Composition替代继承

发布时间: 2013-08-09 15:16:24 作者: rapoo

4.16 优先使用Composition替代继承
public class ContainerWrapper {private Container container;private int count;public ContainerWrapper(Container container){this.container=container;}public boolean add(Object e) {count++;return container.add(e);}public void addAll(Collection<Object> c) {count+=c.size();container.addAll(c);}public int getCount(){return count;}

?

使用Composition可能的问题包括:

1.回调方法问题,Container不能回调ContainerWrapper的方法

2.性能问题,需多创建Wrapper类对象(此问题影响较小)

?

仅在此情况下使用继承:如果每个B的确都是A的子类,那么使用继承

?

在此情况下仍然考虑使用Composition:如果父类的API具有很多缺点,那么可使用Composition提供新的API

?

?

?

?

?

?

读书人网 >操作系统

热点推荐