通过增加子类的方式来扩展功能,而不是通过继承
具体的方式如下
interface inter
{
void do();
}
A implements inter{
public void do(){
//doSomething;
}
}
B implements inter{
A a;
public void do(){
//额外的功能
a.do();
//额外的功能
}
}
2、职责链
有一系列负责处理的类,实现相同的接口,具有大致相同的方法
大致讲就是:我能处理就处理,处理不了就交给其它类来处理
核心的代码就是: handler 为处理类的接口
class A implements handler{
B b;
public void do{
if(条件成立){
A的具体解决方案;
}else{
b.do();
}
}
}
class B implements handler{
C c;
public void do{
if(条件成立){
B的具体解决方案;
}else{
c.do();
}
}
}
这样就串起来了,很容易理解为什么叫职责链
使用条件:所有的情况都已经知道,但不知道具体用哪一种解决方案