2016-08-14 1 views
0

클래스 다이어그램을 만들었습니다. 이것은 단지 개념이지만 관계가 정확한지 그리고 내가 그것을 완전히 이해하고 있는지 알고 싶습니다.관계가 올바른 경우 클래스 다이어그램

MainClass

  • CreateClassA(); 새 ClassA()로 ClassA를 만듭니다.
  • CreateClassB(); ClassB를 새 ClassB()로 만듭니다.
  • getConcreteFromCreator(); 창조자에게서 구체적인 수업을 듣는다. 작성자는 반환 할 구체적인 클래스를 결정하는 스위치 케이스를 가지고 있습니다. 클래스 다음 반환
    • 후 예를 호출 (추상적 callConcrete = 새로운 ConreateA())
  • CreateClassAA(); 인터페이스를 사용하여 ClassAA를 만듭니다. createClassAA = new ClassAA();

ClassAA

  • ClassAA 새로운 ClassBB으로 classBB를 생성();

ClassAA에서 ClassBB까지의 관계는 이것이 컴포지션이라고 할 수 있습니까? classAA는 ClassBB의 작성자이며 기존의 클래스에 의존하기 때문에 InterfaceAA와 ClassAA 간의 관계가 실현됩니다. NClass 다이어그램을 사용하여 선을 그릴 수 없었습니다.

+0

내가 설명하는 것과 다이어그램에 표시된 것과의 관계를 파악할 수 없습니다. 예를 들어, 다이어그램에서'CreateX'와'getThat' 메소드는 모두'void'를 리턴합니다. 생성 된 인스턴스를 내부에 저장합니까? "call ... (abstract callConcrete = new ConreateA())"라는 것은 무엇을 의미합니까? "인터페이스로 ClassAA 생성"이란 무엇입니까? – galenus

+0

내가 말한 것은 MainClass의 메소드 안에 ConcreateA 클래스를 만드는 것이다. 일단 만들어지면 MainClass에서 ConcreateA 클래스의 메서드를 호출 할 수 있습니다. – Skyx

답변

0
  1. 관계 ClassAAClassBB 사이

    Class Diagram

    조성물만을 경우 ClassAA 의해 생성 ClassBB의 인스턴스 ClassAA 내에 저장되고, 외부 실체와 공유하지 않다. 이 경우 구현 세부 사항을 숨기고 ClassAA의 생성자 또는 전용 Initialize 메서드 내에서 필요한 초기화를 수행하는 것이 좋습니다.
  2. NClass에 대해 알지 못하지만 구현은 인터페이스를 가리키는 빈 삼각형이있는 파선으로 지정됩니다. 사이트의 스크린 샷을 기반으로 지원됩니다.
+0

감사! NClass는 InterfaceAA와 ClassAA 사이의 실현 라인을 만들 수 없습니다. "두 객체간에 관계를 만들 수 없습니다."라는 오류 메시지가 나타납니다. – Skyx

+0

원인은 인터페이스에 대한 특별한 유형의 드로잉이있을 수 있습니다. 아마도 클래스와 모양이 다르며 사각형이 아니라 원입니다. – galenus