Основы офисного программирования и язык VBA


Встраивание вместо наследования


Обычно, классы, входящие в библиотеку, связаны между собой. Типично, на классах вводится отношение наследования, так что в иерархически связанном семействе классов есть родительские классы и классы - потомки. Наследование - мощный и естественный механизм порождения новых классов. Прародитель семейства может задавать некоторые общие, наиболее фундаментальные свойства и поведение объектов этого семейства, а его многочисленные потомки задают то или иное специализированное поведение. Кроме того, отметим, что наследование позволяет модифицировать поведение объектов - потомков, не меняя поведения объектов исходного родительского класса. Это важный принцип - "не разрушай то, что создано ранее". Ценность такого подхода, в частности, состоит и в том, что каркас конкретного приложения составляют классы - потомки, чьи родители находятся в библиотеке. Поэтому можно добавлять новые свойства, изменять и добавлять новое поведение у приложения, - все это никак не сказывается на родительских классах, хранящихся в библиотеке.

Наследование, конечно же, не единственно возможное отношение между классами. Программистам хорошо известно встраивание - еще один способ построения нового класса, использующий ранее созданные классы. Пусть построен класс А, тогда при определении нового класса В его элементами - переменными (свойствами класса В) могут быть объекты класса А. В этом случае говорят, что объекты класса А встроены (вложены) в класс В. Встраивание, как и наследование, - транзитивное отношение. Реально это означает, что возможна сколь угодно высокая степень вложенности объектов. Следует отличать непосредственную вложенность от вложенности уровня n. Так, в новый класс С можно встроить объект класса В, и он будет непосредственно вложен в класс С, а объект класса А, встроенный в объект В, будет иметь уровень вложенности 2 по отношению к классу С.

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


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



Книжный магазин