2016-08-14 4 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.

Class Diagram

+0

Я не могу понять связь между тем, что вы объясняете, и тем, что я вижу на диаграмме. Например, каждый метод 'CreateX' и' getThat' на диаграмме возвращает 'void'. Хранили ли они созданные экземпляры внутри? Что значит «называть это ... (Аннотация callConcrete = new ConreateA())»? Что такое «создание ClassAA с интерфейсом»? – galenus

+0

Я хотел бы создать класс ConcreateA внутри метода в MainClass. Когда он будет создан, я могу вызвать методы в классе ConcreateA из MainClass. – Skyx

ответ

0
  1. Соотношение между ClassAA и ClassBB является композиция, только в случае, если экземпляр ClassBB создан ClassAA хранится внутри ClassAA и не используется совместно с внешними объектами. В этом случае было бы хорошей практикой OO скрыть эту деталь реализации и выполнить необходимую инициализацию внутри конструктора ClassAA или выделенного метода Initialize.
  2. Не знаю ничего о NClass, но реализация указана пунктирной линией с полым треугольником, указывающим на интерфейс. На основе скриншотов на их сайте поддерживается.
+0

Спасибо! NClass не позволяет мне создать линию реализации между InterfaceAA и ClassAA. Это дает мне ошибку «Невозможно создать связь между двумя объектами». – Skyx

+0

Причиной может быть то, что для интерфейсов имеется специальный тип чертежа, он, вероятно, отличается от класса и не является прямоугольником, а кругом. – galenus