Объектно-ориентированное программирование



         

Объектно-ориентированное программирование - стр. 94


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

Пытаясь максимально использовать возможности многократного использования, вы можете решить создавать для самого общего объекта OWL  виртуальные методы. Реакции на каждую более чем 500 функций API - ведь в конечном итоге для объекта потомка может возникнуть необходимость в перекрытии любого из этих методов. Однако это может занять большую часть вашего сегмента данных. Для каждого типа объектов, к которому имеется ссылка в программе, создается таблица виртуальных методов, которая содержит 4 - байтный адрес каждого виртуального метода независимо от того, является он унаследованным или перекрытым.  Это требует 2К данных на каждый тип объекта, а в программе OWL  могут использоваться десяток  таких типов. По умолчанию 16К автоматического сегмента данных используется для стека и локальной кучи, поэтому фактически только 48К доступны для данных. Чтобы предотвращать заполнение сегмента данных множеством VMT, в TPW  изменяется механизм динамических методов.       

3.8. Объектные ключевые слова Турбо Паскаля

Полезно знать общие термины, используемые в объектно-ориентированном программировании, но так же полезно знать специфические термины, используемые в реализации  Турбо Паскаля.


Содержание  Назад  Вперед