Резюме
В этой главе рассмотрены некоторые важные связи управляемого C++ и .NET Framework, причем начали мы с базового класса Object (Объект). Мы рассмотрели использование коллекций, в частности, те методы класса Object (Объект), которые следует переопределять для работы с коллекциями. Очень подробно мы обсудили концепцию интерфейсов, позволяющую разработчику строго определять свойства, которые должны быть реализованы в классе.
Хотя класс в управляемом C++ может иметь только один базовый класс, он может реализовывать несколько интерфейсов. Другим достоинством интерфейсов является то, что они значительно облегчают создание динамичных программ. Управляемый C++ обеспечивает возможность во время выполнения программы послать запрос классу для выяснения, поддерживает ли он определенный интерфейс.
Мы подробно рассмотрели интерфейсы используемые для работы с коллекциями, и виды копирования объектов в обычном C++ для копирования объектов используются специальные языковые средства – конструкторы копирования, а в управляемом C++ те же возможности обеспечиваются реализацией особого интерфейса ICloneable.
В итоге мы пришли к изучению роли родовых интерфейсов в методологии программирования .NET Framework и сравнению использования компонентов NET и СОМ, использование родовых интерфейсов также проиллюстрировано на примере сортировки коллекций с помощью интерфейса. Соответствующие примеры позволили полнее ощутить отличие каркаса приложении от простой библиотеки классов.
При использовании каркаса приложении программа может вызывать методы каркаса, а те могут вызывать методы программы. Поэтому создаваемый код можно уподобить среднему слою сандвича. Этот пример поможет понять для чего необходима платформа NET.
А в конце главы рассмотрено использование делегатов и событий. С этой целью были представлены два простых примера – моделирование фондовой биржи и комнаты для дискуссии (чат-программа).