Композиция на основе классов
Оценка 4.9

Композиция на основе классов

Оценка 4.9
docx
18.11.2021
Композиция на основе классов
Л2-002128.docx

Композиция на основе классов

В этом случае объект-часть должен создаваться в процессе созда- ния объекта-контейнера.



Изменить состояние объекта-части можно только в рамках самого контейнера, извне это сделать нельзя.

 

Пример

Сущности аналогичны базовым. Отличия в предметной области: осветительный прибор собирается на заводе изготовителе и представля- ет собой единое целое. Замена частей невозможна.

 

Отличия в программном коде заключаются в изменении конструк- тора класса Прибор. В этом конструкторе создаются объекты-части (лам- почка и корпус изготавливаются на заводе на основе их технических ха- рактеристик, принятых в качестве параметров).

 

public Прибор(Корпус кор, Лампочка лам, string состояние)

{

this.кор = new Корпус(); this.кор.Тип = кор.Тип; this.кор.Цена = кор.Цена; this.лам = new Лампочка(); this.лам.Цена = лам.Цена;

this.лам.Мощность = лам.Мощность; this.состояние = состояние;

}

 

Весь остальной код остается неизменным. В обоих случаях будут выведены одни те же характеристики прибора.

 

//смена эталонной лампочки

п = new Прибор(к, л, "Включено");

 

Если поле, определяющее лампочку в классе Прибор сделать от- крытым, лампочку можно будет заменить, не создавая нового прибора.

 

п.лам.Мощность = 200.0;

 

Но это противоречит описанию предметной области.


 

Композиция на основе классов

Композиция на основе классов

Изменить состояние объекта-части можно только в рамках самого контейнера, извне это сделать нельзя

Изменить состояние объекта-части можно только в рамках самого контейнера, извне это сделать нельзя
Скачать файл