Объектно-ориентированное программирование


Объектно-ориентированное программирование - стр. 130


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


Рис. 4.21. Множественное наследование от непересекающихся классов

 

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

Использование вложенного простого наследования представлено на рисунке


 

Рис. 4.22. Реализация множественного наследования с помощью

                  вложенного простого наследования

 

Либо - делегирование с использованием агрегации ролей как показано на следующем рисунке. Делегированием называется механизм реализации, в котором объект, ответственный за операцию, пересылает (делегирует) эту операцию другому объекту; в объектно-ориентированных языках делегирование реализуется путем присоединения методов непосредственно к объектам, а не к классам.

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


Рис. 4.23. Реализация множественного наследования путем делегирования

                     с использованием агрегации ролей

 

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

·         если подкласс имеет несколько суперклассов, каждый из которых одинаково существен, лучше всего использовать делегирование;

·         если наиболее существенным является только один из суперклассов, а остальные не так важны, наилучшим способом является реализация множественного наследования через простое наследование и делегирование;

·         если число возможных комбинаций групп наследуемых свойств невелико, можно использовать вложенное простое наследование; в случае большого числа комбинаций этот способ применять не следует;




Начало  Назад  Вперед