先转载一个例子:
继承例子:
public class MyStack extends Vector{
public void push(Object element){
insertElementAt(element, 0);
}
public Object pop(){
Object result = firstElement();
removeElementAt(0);
return result;
}
}
当然Vector中还有size和isEmpty方法,当然这两个方法我们是不需要的,但是我们在实例化MyStack的时候,提示是还会有这两个方法,这就是一个问题了,我们需要将其删除。
组合对象例子:
public class MyStack{
private Vector vector = new Vector();
public void push(Object element){
vector.insertElementAt(element, 0);
}
public Object pop(){
Object result = vector.firstElement();
vector.removeElementAt(0);
return result;
}
}
这样就会避免上面的问题了。
--------------------------------------------------------------------------------------------------------------------------
转载自重构改善既有代码的设计