|
Абстрактные объекты и методы
Объект TObject никогда
не используется самостоятельно и служит основой для
начинающегося с него дерева объектов. В Turbo Vision
есть и другие объекты, не предназначенные для самостоятельного
использования в программах. Такие объекты называются
абстрактными. В правильно сконструированной программе
никогда не создаются и не используются экземпляры абстрактных
объектов. Эти объекты просто объединяют в себе некоторые
общие для всех своих потомков поля и методы.
Во многих объектах Turbo Vision используются
абстрактные методы, т.е. методы, которые не содержат
исполняемых операторов и служат заготовками для аналогичных
методов в объектах-потомках. Абстрактные методы всегда
являются виртуальными и должны перекрываться в потомках.
Например, абстрактными являются деструктор TObject.Done,
используемый для удаления экземпляра объекта из кучи,
метод TSortedCollection.Compare, с помощью которого
осуществляется сортировка коллекций, метод TCluster.Press,
ответственный за обработку события, связанного с выбором
элемента управления в диалоговом окне. В большинстве
абстрактных методов предусмотрен вызов глобальной процедуры
Abstract, предназначенной для аварийного завершения
работы программы и выдачи соответствующего диагностического
сообщения.
Некоторые методы не являются абстрактными,
но предоставляют лишь минимум возможностей и поэтому
почти всегда перекрываются в потомках. Такие методы
называются псевдоабстрактными. Примером псевдоабстрактного
метода может служить метод TView.Draw, ответственный
за перерисовку видимого элемента: по умолчанию он ничего
не делает и оставляет выделенную ему часть экрана без
изменений.
Puc.16.2. Иерархия
объектов Turbo Vision
|