【发布时间】:2010-11-26 21:12:43
【问题描述】:
我一直在尝试找出一种方法来标记我的基类中的几个方法,以便客户端类可以通过标记调用它们。示例代码为:
public class Base {
public void method1(){
..change state of base class
}
public void method2(){
..change state of base class
}
public void method3(){
..change state of base class
}
}
来自 main() 方法的客户端类将通过随机指令序列调用 Base 的每个方法:
public static void main(String[] args) {
String sequence = "ABCAABBBABACCACC"
Base aBase = new Base();
for (int i = 0; i < sequence.length(); i++){
char temp = sequence.charAt(i);
switch(temp){
case 'A':{aBase.method1(); break;}
case 'B':{aBase.method2(); break;}
case 'C':{aBase.method3(); break;} }
}
System.out.println(aBase.getState());
}
现在我希望从 Client 对象中完全摆脱 switch 语句。我知道用多态性替换 switch 的技术,但希望 避免 创建一组新类。我希望将这些方法简单地存储在适当的数据结构中,并以某种方式用序列中的匹配字符标记它们。
映射可以轻松地存储具有可以完成工作的值/键对的对象(就像我所做的here)或命令模式,但由于我不想用对象替换这些方法,是否存在也许是另一种方式,存储方法并让客户端有选择地调用它们?
感谢任何建议
【问题讨论】:
标签: java design-patterns oop methods switch-statement