关于组合和面向对象的问题:
我正在尝试为一个类实现更多功能(以 Java TreeMap 为例)。
public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, Serializable
使用组合是这样做的方法,所以我必须首先创建一个可重用的转发类,它将包装类的功能,同时让它只这样做,以便它可以在其他地方使用未来。
public class ForwardingNavigableMap<K,V> implements NavigableMap<K,V>
{
...
}
然后,我将继续创建一个包装类,该类继承新创建的 可重用转发类,如下所示:
public class BetterTreeMap<K,V> extends ForwardingNavigableMap<K,V>
{
/* some new cool features here */
}
如果 TreeMap 包含我的类中需要的许多优良特性,那可能不是 NavigableMap 接口的一部分,会发生什么?然后我应该继续为 TreeMap 声明我自己的接口,并在我的可重用类中实现它吗?任何输入在这里表示赞赏。