2014-04-15 3 views
0

컨트롤 클래스가 다른 클래스의 메서드를 사용하는 경우 어떻게 연결을 모델링합니까?컨트롤 클래스가 다른 클래스의 메서드를 사용하는 경우 어떻게 연결을 모델링합니까?

예를 들어 사용자가 다른 사용자를 추가하거나 삭제할 수있는 User 클래스와 PortalController 클래스가있는 경우 UML로 연결을 모델링하는 방법은 무엇입니까?

UserUser의 메소드를 사용하여 새 사용자를 생성하므로 PortalController에 대한 종속성이 있다고 가정합니다.

User <--- PortalController 

그러나 사용자는 또한 PortalController를 사용하여 하나가 될 것입니다, 그래서 다른 연결이 있어야한다 :

 uses 
User --------> PortalController 

내가 두 개의 화살표를 그릴해야 하는가?

+0

나에게는 사용자를 사용하는 PortalController가 있지만 PortalController를 사용해야하는 이유는 분명합니다. –

+0

예를 들어, 사용자가 온라인 포털에 로그인하여 변경합니다. – mushroom

+1

이것은 결코 좋지 않은 종속성주기를 암시합니다. PotalController를 사용하여 PortalController와 User에 의해 수정 된 사용자가 동일한 개념입니까? 나를 위해 첫 번째 사람과 두 번째 연결된 사람의 세션을 것 같다. –

답변

1

을 클래스 A가 다른 클래스 B에서 방법을 사용하는 경우, 당신은에서 사용 종속 관계로 모델링한다 지금

enter image description here 아래에 묘사 된 B로 나는 꽤 다른 두 가지 User를 섞어 놓았다고 확신한다.

PortalController가 사용자 집합을 관리 할 수 ​​있다고 말했을 때 시스템의 구조/구현을 다루고 있으므로 두 개의 클래스가있는 것처럼 보입니다.

사용자가 시스템에 로그인했다고 말하면 시스템의 사용 사례를 다루고 있습니다. 따라서이 경우 사용자는 시스템을 사용하는 액터가됩니다.

도움이 되셨습니까?

1

나는 사용자 클래스에서 다른 클래스 (예 : UserFactory)로 사용자 생성의 책임을 추출해야한다고 생각합니다. 레드 비어드 (Red Beard)가 이미 언급했듯이 디자인은 "사용자"라는 두 가지 개념을 오버레이하는 것처럼 보입니다. 이 경우

당신이 가진 것 :

   uses 
UserSession --------> PortalController 

UserSession --------> User 

        uses 
PortalController --------> UserFactory 

PortalController --------> User 

      instantiates 
UserFactory --------> User 
관련 문제