我在它與一些國家的枚舉:重構if語句使用適當的模式
enum State
{
A,
B,
C,
D
}
,並具有相應狀態的對象:
class MyObject
{
State state;
}
我需要寫一個算法,需要兩個MyObject實例並根據這些實例的特定狀態執行一些操作:
void doWork(MyObject o1, MyObject o2)
{
if (o1.state == A && o2.state == A)
{
// do something
}
else if (o1.state == A && o2.state == B)
{}
// etc for all combinations...
}
顯然這種方法有很多問題,我想將其改爲理想地擺脫if/else語句。
這樣的要求是否有任何模式?
感謝
@ org.life.java:廢話 - 使用==是枚舉完全安全的。 – 2010-11-12 19:40:01
@邁克爾博格瓦特我道歉,刪除評論也是同樣的情形''==更優選,從這個http://stackoverflow.com/questions/1750435/comparing-java-enum-members-or-equals – 2010-11-12 19:53:12