基本上我有一個實體(稱爲Session),它將提供許多不同的服務。用戶可以選擇性地打開或關閉每項服務(登錄或註銷)。我不確定代表這個的最佳設計是什麼。見UML建模提供多種服務的對象的正確方法是什麼?
從編程的用例的角度看,交互與會話實例:
Session session = new Session("1234"); // 1234 is the userid
session.start();
session.serviceSignIn(ServiceType.DELICIOUS);
.... do stuff ...
session.serviceSignOut(ServiceType.DELICIOUS);
session.serviceSignIn(ServiceType.MAGNOLIA);
.... do stuff ...
session.serviceSignOut(ServiceType.MAGNOLIA);
另一種可能的設計:
session.delicious().signIn();
.... do stuff ...
session.delicious().signOut();
session.magnolia().signIn();
.... do stuff ...
session.magnolia().signOut();
我應該更喜歡哪個?我犯了什麼錯誤?
它們提供規範的相同類型的服務,但實現完全不同。用戶可以擁有零個或更多的「帳戶」與每個服務。 – 2009-04-13 09:36:23