|
|||||||||||||||||||
|
Расширяемость объектовНужно отметить важную особенность, касающуюся модулей, подобных 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 программирование: Бурлаков Михаил