我只是無法弄清楚我應該採用哪種設計模式。說我有這樣的課程:我應該使用哪種設計模式來建模人與角色關係?
class Person
String role;
public void takeRole(String role) {
this.role = role;
}
public void do() {
switch(role)
case a:
do this and that;
this.role = b;
case b:
do this and that;
case c:
do this and that;
this.role=a;
....
總之,一個人有角色和do()方法取決於他的角色是什麼。在某些情況下,他可能不得不轉換角色。我認爲這個do()應該被抽象(更多的是因爲將來可能會定義其他角色)---但是怎麼做呢?是否應該有一個角色類?
任何幫助將不勝感激。
編輯:
感謝您的保時,人。我想補充一點。我確實認爲(至少作爲一個想法)許多建議的解決方案。以下是我的困難:如果我將人員類(如PersonTypeA,personTypeB等)分類並將每個特定角色分配給相應的人員類型,那麼在切換角色時會遇到困難(例如,工程師成爲會計師! ---很奇怪,至少可以說
另一方面,如果我爲每個角色創建類,那麼(1)角色感覺不像一個對象,因爲(至少在我的情況下)是一個角色沒有屬性,只有方法,因此,role_A_1與role_A_2沒有什麼不同,但是對於每個人我都必須創建一個新的角色對象 - 即使它們共享相同的角色。我不確定自己是否清楚,我不確定我的觀點是否合理。
所以用戶永遠不會有2+的角色,在同一時間。 IE:領導,開發人員? – 2011-02-03 18:48:06
感謝您的回覆。我會再想一想,回到你身邊。 – blackened 2011-02-04 10:43:01
如果您想提供更多信息,請更新您的問題或留下意見。我已將您留下的答案轉換爲評論。 – 2011-02-04 10:44:19