Мир программирования

 


Найти: на:


Меню
Партнеры
Счетчики
Реклама

Расширяемость объектов


 Предыдущая страница     |     Следующая страница  
Добавить в избанное Обсудить в форуме Написать автору сайта

     Нужно отметить   важную   особенность,    касающуюся  модулей, подобных FIGURES.PAS - типы  объектов  и  методы,   определенные  в модуле, могут передаваться пользователям только в отредактированной форме .TPU  без  исходного  кода.  Только список интерфейсной части модуля необходимо  разъединить.  Используя  полиморфные  объекты  и виртуальные  методы,  пользователь .TPU файла может добавить к нему свойства, отвечающие его потребностям.

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

     FIGDEMO.PAS (на  Вашем  диске)  использует  модуль  Figures  и расширяет его,  создавая новый  объект  графической  фигуры  Arc  в качестве типа,  порожденного Circle.  Объект Arc может быть написан намного позднее компиляции FIGURES.PAS, кроме того, объект типа Arc может использовать наследуемые методы,  подобно MoveTo или Drag без специального рассмотрения.  Позднее связывание и виртуальные методы Arc  позволяют методу Drag вызывать методы Arc.Show и Arc.Hide даже если эти методы написаны намного позднее компиляции Point.Drag.

[оглавление]


Предыдущая страница     |     Следующая страница


Добавить в избанное Обсудить в форуме Написать автору сайта

Опрос

Конкурсы
Реклама

 

Web дизайн: Бурлаков Михаил    

Web программирование: Бурлаков Михаил

Используются технологии uCoz