Отношение использования.
Объектно-ориентированное программирование
В обоих случаях достигается один и тот же эффект. Общее правило гласит, если некоторая абстракция представляет нечто большее чем сумму некоторых абстракций — пригодны отношение использования, если абстракция является подвидом или соответствует простой сумме компонент надо использовать отношение наследование. Компиляцию описания этого класса можно осуществить только после компиляции класса Tbook… Читать ещё >
Отношение использования. Объектно-ориентированное программирование (реферат, курсовая, диплом, контрольная)
Не всегда с помощью механизма наследования удается адекватно отразить всю совокупность сложных отношений между абстракциями.
Рассмотрим отношение между библиотекой и книгами. Библиотека не являетсяся разновидностью книг, а объединяет их.
Tlibrary = object (Tobject).
Procedure Tlibrary Initalite ;
Procedure Tlibrary. Cheekout (Abook: Tbook);
Procedure Tlibrary. Cheekin (Abook: Tbook);
End;
Компиляцию описания этого класса можно осуществить только после компиляции класса Tbook. Т.к. он входит в интерфейс класса Tlibrary. Для класса Tlibrary использование класса Tbook означает, что Tlibrary видимо для Tbook. 3а интерфейс и реализация Tlibrary могут обращаться к интерфейсу, но не к реализации Tbook.
Например, реализрвация метода checkout подразумевает посылку сообщения объекту abook. Что бы изменить состояние этого объекта (установление метки о прохождении контроля).
Например, код функции выполняющий контроль книг в библиотеке должен быть видимым как для класса Tlibrary (вызов функции checkout), так и для Tbook (чтобы сослаться на объект этого класса.
Во 2-м случае используемый класс находится в области ограниченного доступа использующего класса. Например, в реализации класса Tlibrary может быть использован класс Tlist (список книг).
Для этого класса необязательно соблюдать требования видимости для интерфейса Tlibrary, достаточно условие видимости для реализации Tlibrary.
Рассмотрим ситуацию когда любая библиотека может состоять из n книг, но каждая книга имеется только в1-й библиотеке — это пример отношения 1: n .
В другом случаи можно допустить, что в каждой библиотеке имеется определенная коллекция и существует только в 1-й библиотеке это пример отношения 1:1.
интерфейс реализация Возможно отношение n: m.
Множественное наследование часто приводит к проблемам отношениях использования. Можно определить класс telephone путем наследования классов, соответствующих клавиатуре, микрофону, громкоговорителю.
Можно наоборот определить этот же класс, путем использования 3-х указанных классов.
В обоих случаях достигается один и тот же эффект. Общее правило гласит, если некоторая абстракция представляет нечто большее чем сумму некоторых абстракций — пригодны отношение использования, если абстракция является подвидом или соответствует простой сумме компонент надо использовать отношение наследование.
Отношение наполнения.
Множество является примером сборного класса. Сборные классы могут быть однородными: состоять из 1-го класса или неоднородными: состоять из объектов разных классов, имеющих общий суперкласс. Наиболее часто встречаются такие виды сборных классов как стек, список, множество, граф.