Size: a a a

2020 August 20

K

Konstantin in learn.java
Vitaly Nechitaylo
А если в автомобиле используется двигатель, один из тех, что сейчас собирают на конвейре и каждый имеет серийный номер?
по идее композиция
источник

V

Vitaly Nechitaylo in learn.java
Konstantin
А какое отношение будет, если у инженера будет таблица с номером кузова автомобиля и номером двигателя, в него установленного?

Здесь будет агрегация, так как есть некий список
Верно. А как объекты взаимодействуют между собой - уже детали реализации
источник

V

Vitaly Nechitaylo in learn.java
Konstantin
по идее композиция
Да, но если не учитывать условие, что двигатель может оказаться бракованным и нужно будет установить другой
источник

K

Konstantin in learn.java
но тогда получается он был создан заранее
источник

K

Konstantin in learn.java
и агрегация
источник

DC

Denis Chikanov in learn.java
Konstantin
но тогда получается он был создан заранее
Ещё раз - то, как/где он создаётся, само по себе ВООБЩЕ не определяет, композиция это или агрегация
источник

V

Vitaly Nechitaylo in learn.java
Konstantin
и агрегация
Верно
источник

DC

Denis Chikanov in learn.java
Ну камон, "он был создан заранее" не делает это агрегацией
источник

K

Konstantin in learn.java
Denis Chikanov
Ну камон, "он был создан заранее" не делает это агрегацией
а что тогда делает его агрегацией по вашему,
источник

K

Konstantin in learn.java
?
источник

V

Vitaly Nechitaylo in learn.java
Denis Chikanov
Ну камон, "он был создан заранее" не делает это агрегацией
Да, я вроде стараюсь акцентировать внимание на абстракции :)
источник

DC

Denis Chikanov in learn.java
Konstantin
а что тогда делает его агрегацией по вашему,
Логика использования.
источник

V

Vitaly Nechitaylo in learn.java
Konstantin
а что тогда делает его агрегацией по вашему,
Что двигатель и автомобиль существуют сами по себе
источник

V

Vitaly Nechitaylo in learn.java
Коллеги, поправьте, если неправ где
источник

K

Konstantin in learn.java
окей, т.е. если я создам двигатель отдельно и дам ему возможность жить без машины то это агрегация
источник

DC

Denis Chikanov in learn.java
Konstantin
окей, т.е. если я создам двигатель отдельно и дам ему возможность жить без машины то это агрегация
А если ты создашь двигатель только для того, чтобы пихнуть его в объект-машину - композиция, да
источник

K

Konstantin in learn.java
а если я создаю двигатель в машине и двигатель не может существовать без машины это уже компощзиция
источник

h

humanoid in learn.java
Konstantin
Всем здрасти такой вот глупый наверное вопрос.
Композиция, это один класс является частью другого, например двигатель не может существовать без машины, так как класс машина создает себе экземпляр двигателя самостоятельно например в конструкторе.
public class Car{
   private Engine engine;
   public Car(){
       engine = new Engine();
   }
}
Агрегация это когда один класс содержит другой класс, например двигатель передается в конструктор автомобиля и уже может существовать без автомобиля, даже если он будет уничтожен.
public class Car{
   private Engine engine;
   public Car(Engine engine){
       this.engine = engine;
   }
}

То тогда вопрос, если я создаю двигатель в конструкторе(по сути композиция) и создаю сеттер на двигатель(что уже по сути агрегация), то какое отношение будет иметь класс автомобиль по отношению к классу двигатель? Ведь он получается содержит и композицию и агрегацию 🤷‍♂️
public class Car{
   private Engine engine;
   public Car(){
       engine = new Engine();
   }
   public setEngine(Engine engine){
       this.engine = engine;
   }
}
Мне интересно, а что тебе даст это знание?
источник

V

Vitaly Nechitaylo in learn.java
humanoid
Мне интересно, а что тебе даст это знание?
Возможность мыслить абстрактно
источник

K

Konstantin in learn.java
humanoid
Мне интересно, а что тебе даст это знание?
паттерны хочу понять, а там есть такая вещь как композиция. в основе многих паттернах лежит в качестве основы композиция. вот и хочу понять что это такое и в чем отличие от агрегации
источник