我有兩個對象說對象a和對象b。這兩個對象都有一些屬性,比如名稱,年齡等。我想寫一個方法,將一些字符串值作爲參數傳遞給此方法,併爲這兩個對象打印一些值。要打印的值由正在傳遞給方法的字符串決定。要更清楚: -字符串開關在OOP中的實現替代
Class A{
String name;
String age;
//getters and setters for name and age
}
Class B{
String salary;
String level;
//getters and setters for name and age
}
public String getValue(String attribute)
{
switch(attribute)
{
case "name":
System.out.println(a.getName());
System.out.println(b.getSalary());
break;
case "age":
System.out.println(a.getAge());
System.out.println(b.getLevel());
break;
}
}
現在使用switch語句來完成這項工作。但我已經讀過,switch語句對於OO設計並不是一個好習慣。我能做到這些的其他方式是什麼?我已閱讀了關於使用枚舉的一些信息,但我對此不太清楚。
我不明白爲什麼交換機不會是很好的做法,OOP或沒有。 – AntonH
與您的問題無關,但是A和B類相同?因爲這不會是很好的OO設計。 –
我已閱讀了關於此的幾個討論,所以我只是想知道還有什麼其他替代品可用。這是其中一個討論: - http://stackoverflow.com/questions/550919/does-anyone-disagree-with-the-statement-using-switch-is-bad-oop-style –