优先使用对象组合,而不是使用继承
2014-01-17 17:42
246 查看
先转载一个例子:
继承例子:
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;
}
}
这样就会避免上面的问题了。
--------------------------------------------------------------------------------------------------------------------------
转载自重构改善既有代码的设计
继承例子:
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;
}
}
这样就会避免上面的问题了。
--------------------------------------------------------------------------------------------------------------------------
转载自重构改善既有代码的设计
相关文章推荐
- 设计模式(笔记)优先使用对象组合而不是类继承
- 优先使用对象组合,而不是类继承
- 优先使用对象组合而不是类继承
- 优先使用对象组合,而不是类继承
- 优先使用组合对象,而不是继承"的理解
- 面向对象的设计法则-法则1:优先使用(对象)组合,而非(类)继承
- 设计模式----优先使用对象组合,而非类继承
- 为什么优先使用组合而不是继承
- 面向对象的设计法则(1)——优先使用(对象)组合,而非(类)继承
- 面向对象的设计法则(1)——优先使用(对象)组合,而非(类)继承
- 为什么要优先使用组合而不是继承 .
- 为什么要优先使用组合 而不是继承?
- 一些面向对象的设计法则-法则1:优先使用(对象)组合,而非(类)继承
- 优先使用组合 而不是继承?
- 面向对象设计三大原则(封装变化点,对接口进行编程,多使用组合而不是继承)
- 为什么要优先使用组合而不是继承
- [阅读笔记]面向对象的设计法则--法则1:优先使用(对象)组合,而非(类)继承 Favor Composition Over Inheritance
- 面向对象的设计法则(1)——优先使用(对象)组合,而非(类)继承(转)
- 优先使用(对象)组合,而非(类)继承
- Python基础(6)- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)