Рубрики
Без рубрики

Общие типы отношений ООП и их представление в UML

Повторное использование кода – одно из многих преимуществ ООП (объектно-ориентированного программирования). Возможно повторное использование… С тегами ооп, uml, программирование, java.

Повторное использование кода – одно из многих преимуществ ООП (объектно-ориентированного программирования). Возможность повторного использования возможна благодаря различным типам отношений, которые могут быть реализованы между классами. В этой статье будут продемонстрированы типы отношений (от слабых до сильных) с использованием примеров кода Java и символов на диаграмме классов UML (унифицированный язык моделирования).

Зависимость

Это связь, когда объекты одного класса ненадолго взаимодействуют с объектами другого класса. Обычно множественность не имеет смысла в зависимости.

class Move { 
   public void Roll() { ... } 
}

class Player {
   public void PerformAction(Move move) { 
      move.Roll();
   }
}

Ассоциация

Эта связь возникает, когда объекты одного класса знают объекты другого класса. Отношения могут быть один к одному, один ко многим, многие к одному или многие ко многим. Более того, объекты могут создаваться или удаляться независимо друг от друга.

public static void main (String[] args) {
   Doctor doctorObj = new Doctor("Rick");
   Patient patientObj = new Patient("Morty");
   System.out.println(patientObj.getPatientName() +
        " is a patient of " + doctorObj.getDoctorName());
}

Агрегация

Это отношения типа “имеет-а” и односторонняя форма ассоциации. Эта связь существует, когда класс владеет, но совместно использует ссылку на объекты другого класса.

class Address{
//code here
}

class StudentClass{
   private Address studentAddress;
//code here
}

Композиция

Это тип отношений “часть” и является сильным типом ассоциации. Другими словами, композиция происходит, когда класс владеет и содержит объекты другого класса.

class Room {
//code here
}

class House {
   private Room room;
//code here
}

Наследование

Это тип отношений “есть-есть”. Это механизм, который позволяет классу приобретать свойства и поведение существующего класса (или иногда нескольких классов, если язык допускает множественное наследование).

abstract class Vehicle {
//code here
}

class Car extends Vehicle {
//code here
}

Примечание: При чтении диаграммы классов UML отправная точка отсутствует. Вам решать, с чего начать. Просто следуйте за отношениями, и тогда вы сможете начать понимать и анализировать свойства, поведение и отношения классов.

Оригинал: “https://dev.to/tommyc/common-types-of-oop-relationships-and-their-uml-representation-5b27”