常常见到类例的语句,

main() ...{ 

if(case A)...{ 
//do with strategy A 

}else(case B)...{
//do with strategy B 

}else(case C)...{ 
//do with strategy C 
}
} 可不可以用oo的思想重构呢?

class runner...{ 
do(); 
}



class A extends runner...{ 

do()...{ 
//do with strategy A 
} 
}



class B extends runner...{ 

do()...{ 
//do with strategy B 
} 
}



class C extends runner ...{ 

do()...{ 
//do with strategy C 
} 
}



main()...{ 
runner.do(); 
} 
这样main函数的语句简单多了。但类的数量也增多了。
那么客户端如何调用呢?用工厂模式来生产“产品”吧。
class RunnerFactory{
runner getInstante(case){
if (case A) return new A();
else if (case B) return new B();
else if (case C) return new C();
}
}
runner getInstante(case){
if (case A) return new A();
else if (case B) return new B();
else if (case C) return new C();
}
}
1576

被折叠的 条评论
为什么被折叠?



