首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

4.16 优先运用Composition替代继承

2013-08-09 
4.16 优先使用Composition替代继承public class ContainerWrapper {private Container containerprivate

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

?

?

?

?

?

?

热点排行