不同的数据,采用不同的处理方式,采用统一的接口
/*v1.0*/
class A{
type1 id;
type2 handler;
...
excute(){
if(handler="handler1"){
if(id==1){
}
...
else if(id==N){
}
...
}
...
else if(handler="handlerN"){
...
}
}
...
};
/******/
class B{
...
void execute(){
class A a;
...
a.excute();
}
...
}
/*v2.0*/
class Handler;
class A{
...
class Handler hanlder;
setHandler(class A a){
handler=a;
}
excute(){
h.excute(this);
}
...
}
/******************************/
class A_ID1:public A{
....
}
...
class A_IDN:public{
...
}
/*******************************/
class Handler{
...
excute( class A a){};
...
}
class Handler1:public A{
...
excute(class A_ID1 a){//利用了多态,很有意思
...
}
excute(class A_IDN a){
...
}
...
}
...
class HandlerN:public A{
...
excute(class A_ID1 a){
...
}
excute(class A_IDN a){
...
}
...
}
/**/
class B{
...
excute(){
class A_x a;
class Handler_y h;
a.setHandler(h);
a.excute();
}
}
这里利用了函数的多态啊!