2016-05-21 6 views
0

Мне нужно создать диаграмму классов моего недавно созданного приложения Angular2. Я знаю основную схему создания диаграмм классов для .NET-приложения, написанного на C#, но никогда не делал его на основе архитектуры Angular2.Classdiagram Angular2, связь или зависимость при инъекции и использование маршрутизации

Сценарий 1: Класс, который зависит от службы

код:

@Injectable() 
export class AmendmentAccountComponent implements OnInit 
{ 

    constructor(private accountService: AccountService) 
    { 

    } 
} 

Допустим, я создал компонент под названием AccountComponent. Этот компонент нуждается в службе AccountService, которая будет введена в конструктор. Прямо сейчас я собираюсь связать зависимость (не ассоциацию) с AccountComponent с AccountService, которая указывает, что она нуждается в этой зависимости до того, как компонент будет выполнен.

Зависимость по сравнению с тем, как она выглядит в этом article

ли зависимость правильный способ показать (что я объяснил) в диаграмме классов?

Сценарий 2: Компонент использует маршрутизации (RouteConfig)

Допустим, у меня есть компонент, названный PageComponent. Он имеет класс с именем тот же. Компонент получил некоторую маршрутизацию как возмущался в коде RouteConfig под здесь:

@RouteConfig([ 
    { path: '/', name: 'Bookings', component: BookingsComponent }, 
    { path: '/bookings', name: 'Bookings', component: BookingsComponent, useAsDefault: true }, 
]) 

Так ребенок этого компонента является BookingsComponent. Как следует нарисовать это соотношение на диаграмме классов? просто с нормальной ассоциацией?

Надеюсь, кто-то может помочь, особенно со сценарием 2, который я не уверен, как его нарисовать.

ответ

1

Сценарий 1: Да, зависимость от AccountComponent к AccountService правильно.

Сценарий 2: В этом случае также подходит зависимость от PageComponent к BookingComponent. Нормальная ассоциация (со стрелкой, указывающей на BookingComponent) означает, что экземпляр PageComponent может иметь ссылку (в смысле UML слова) на экземпляр BookingComponent. В Angular2 я бы использовал ассоциацию, только если класс PageComponent имел бы поле типа BookingComponent.

Для получения дополнительной информации о моделировании UML для углового программного обеспечения, см Technical design in UML for AngularJS applications

+0

Итак, вы говорите, что если PageComponent использует маршрутизацию, чтобы перейти к ее дочернему компоненту, указав <роутер-выход>, тогда я должен использовать зависимость, иначе я использую ассоциацию? – Mikkel

+0

Используйте ассоциацию, если объекты (экземпляры классов) связаны, в противном случае используйте зависимость. Значение «связанных» в угловых терминах открыто для обсуждения, но я бы сказал, что если класс PageComponent имеет поле (член, атрибут, свойство, вы его называете), ссылаясь на экземпляр BookingComponent, затем используйте ассоциация, указывающая от PageComponent к BookingComponent, в противном случае использует зависимость. –

+0

Хорошо, спасибо за вашу помощь .. Я закончил тем, что сделал это ассоциацией, потому что мне важно дочерние компоненты и использование . – Mikkel

0

1) Dependency является правильной ссылка:

enter image description here

2) Вашего RouteConfig массив ассоциативных массивов. Сам ассоциативный массив, по-видимому, переносит какую-то структуру. Эта структура вполне может быть представлена ​​как один класс. Так что я бы придумал эту картину:

enter image description here

+0

Я понимаю, первое изображение, которое вы сделали, но я не уверен, что о втором. Где находится PageComponent? Я имею в виду, что PageComponent является родителем BookingComponent, поэтому должна быть какая-то связь? или я что-то пропустил? – Mikkel

+0

Я не знаком с Angular2. Вторая картинка - это представление @ RouteConfig. Возможно, это всего лишь некоторый эшафот, но я не могу догадаться о его значении, связанном с вашим PageComponent. –

 Смежные вопросы

  • Нет связанных вопросов^_^