Sześć typów relacji klasowych

Istnieje sześć głównych typów relacji między klasami: dziedziczenie , realizacja/implementacja , kompozycja , agregacja , asocjacja i zależność . Strzałki dla sześciu relacji są następujące:

Wtedy zaczynamy rozumieć konkretną treść relacji klasowej.

UML class diagram relationships

 

Sześć rodzajów relacji

W sześciu typach relacji struktura kodu trzech typów relacji, takich jak kompozycja , agregacja i skojarzenie , jest taka sama jak w przypadku używania atrybutów do przechowywania odwołań do innej klasy. Dlatego należy je rozróżniać relacją między treściami.

Dziedzictwo

Dziedziczenie jest również nazywane uogólnieniem i jest używane do opisywania relacji między klasami nadrzędnymi i podrzędnymi. Klasa nadrzędna jest również nazywana klasą bazową, a podklasa jest również nazywana klasą pochodną.
W relacji dziedziczenia podklasa dziedziczy wszystkie funkcje klasy nadrzędnej, a klasa nadrzędna ma wszystkie atrybuty, metody i podklasy. Podklasy zawierają dodatkowe informacje oprócz tych samych informacji co klasa nadrzędna.
Na przykład: autobusy, taksówki i samochody to samochody, wszystkie mają nazwy i wszystkie mogą być w drodze.

Realizacja / Wdrożenie

Implementacja (implementacja) służy głównie do określenia relacji między interfejsami a klasami implementacji .
Interfejs (w tym abstrakcyjna klasa ) to zbiór metod. W relacji implementacji klasa implementuje interfejs, a metody w klasie implementują wszystkie metody deklaracji interfejsu.

Na przykład: samochody i statki to pojazdy, a pojazd to tylko abstrakcyjna koncepcja mobilnego narzędzia, a statek i pojazd realizują określone funkcje mobilne.

Relacja składu

Skład: Relacja między całością a częścią, ale nie można oddzielić całości od części .

Relacja kombinacyjna reprezentuje relację między całością a częścią klasy, a całość i część mają spójny czas życia. Kiedy cały obiekt nie istnieje, niektóre z obiektów nie będą istnieć i wszystkie umrą w tym samym życiu. Na przykład osoba składa się z głowy i ciała. Te dwie rzeczy są nierozłączne i współistnieją.

Związek agregacji

Agregacja: związek między całością i częścią oraz całością i częścią można rozdzielić.
Relacje agregacyjne reprezentują również relacje między całością a częścią klasy, obiekty składowe są częścią całego obiektu, ale obiekt składowy może istnieć niezależnie od obiektu ogólnego.

Na przykład kierowcy autobusów, ubrania robocze i czapki są częścią ogólnej relacji, ale można je rozdzielić. Ubrania robocze i czapki można nosić na innych kierowcach. Kierowcy autobusów mogą również nosić inne ubrania robocze i nakrycia głowy.

Związki Stowarzyszenia

Powiązanie: wskazuje, że właściwość klasy zawiera odniesienie do instancji (lub instancji) innej klasy .
Asocjacja jest najczęściej używaną relacją między klasą a klasą, co oznacza, że ​​istnieje związek między jednym typem obiektu a innym typem obiektu. Kombinacje i agregacje również należą do relacji asocjacyjnych , ale relacje między klasami przynależności są słabsze niż pozostałe dwie.
Istnieją cztery rodzaje asocjacji : asocjacje dwukierunkowe , asocjacje jednokierunkowe , asocjacje własne i asocjacje wielonumerowe .
Na przykład: samochody i kierowcy, jeden samochód odpowiada danemu kierowcy, a jeden kierowca może prowadzić wiele samochodów.
Na diagramach UML asocjacje dwukierunkowe mogą mieć dwie strzałki lub nie mają strzałek , a asocjacje jednokierunkowe lub autoskojarzenia mają strzałkę .
W relacji krotności można dodać liczbę bezpośrednio do skojarzonego wiersza, aby wskazać liczbę obiektów w odpowiedniej klasie.
  • 1..1: Tylko jeden
  • 0..*: Zero lub więcej
  • 1..*:jeden lub więcej
  • 0..1: Nie lub tylko jeden
  • m..n: co najmniej m, najwyżej n (m<=n)

Zależności

Zależność: Załóżmy, że zmiana w klasie A powoduje zmianę w klasie B, a następnie powiedz, że klasa B zależy od klasy A.
W większości przypadków zależności znajdują odzwierciedlenie w metodach klasy, które używają obiektu innej klasy jako parametru .

Relacja zależności to relacja „użytkowania”. Zmiana w konkretnej rzeczy może wpłynąć na inne rzeczy, które z niej korzystają, i użyć zależności, gdy konieczne jest wskazanie, że jedna rzecz korzysta z innej. Na przykład: Samochód jest napędzany benzyną. Jeśli nie będzie benzyny, samochód nie będzie mógł jechać.

Diagram klas – system zamówień
Poniższy diagram klas modeluje zamówienie klienta z katalogu detalicznego. Klasą centralną jest Zakon . Związani są z nim Klient dokonujący zakupu oraz Płatność . Płatność jest jednym z czterech rodzajów: gotówka , czek , kredyt lub przelew . Zamówienie zawiera OrderDetails (pozycje), z których każdy jest powiązany z elementem Item .

Class Diagram template: UML Class Diagram Example: Sales Order System (Created by Visual Paradigm Online's Class Diagram maker)

EDYTUJ TEN SZABLON

Przykład diagramu klas: GUI

Diagram klas może również zawierać notatki dołączone do klas lub relacji.

Class Diagram template: Class Diagram GUI Example (Created by Visual Paradigm Online's Class Diagram maker)

EDYTUJ TEN SZABLON

Diagram klas z ograniczeniami zdefiniowanymi przez użytkownika

Class Diagram template: Class Diagram - Classes and packages Constraints (Created by Visual Paradigm Online's Class Diagram maker)

EDYTUJ TEN SZABLON

Wśród sześciu typów relacji struktura kodu kombinacji, agregacji i skojarzenia jest taka sama i można ją zrozumieć na podstawie siły relacji. Kolejność od silnego do słabego to: dziedziczenie → implementacja → kompozycja → agregacja → asocjacja → zależność . Poniżej znajduje się kompletny diagram UML.