Совмещенные код и данные
Одним из важнейших принципов объектно-ориентированного прог- раммирования является то, что программист во время разработки программы должен думать о коде и о данных совместно. Ни код, ни данные не существуют в вакууме. Данные управляют потоком кода, а код манипулирует образами и значениями данных.
Если ваши код и данные являются разделенными элементами, то всегда существует опасность вызова правильной процедуры с невер- ными данными или ошибочной процедуры с правильными данными. Забо- та о совпадении этих элементов возлагается на программиста, и хо- тя строгая типизация Паскаля здесь помогает, самое лучшее, что он может сделать - это указать на несоответствие.
О том, что действительно существует вместе, Паскаль нигде не сообщает. Если это не отмечено комментарием или не то, о чем вы все время помните, то вы играете с судьбой.
Объект осуществляет синхронизацию кода и данных путем сов- местного построения их описаний. Реально, чтобы получить значение одного из полей объекта, вы вызываете относящийся к этому объекту метод, который возвращает значение нужного поля. Чтобы присвоить полю значение, вы вызываете метод, который назначает данному полю новое значение.
Однако, Borland Pascal не вынуждает вас делать это. Как вся- кое структурное программирование, объектно-ориентированное прог- раммирование является дисциплиной, которую вы должны навязать се- бе, используя предоставляемые языком средства. Borland Pascal позволяет вам обращаться к полям объекта непосредственно извне объекта, однако он поощряет вас использовать преимущества объект- но-ориентированного программирования и создавать методы для мани- пулирования полями объекта внутри самого объекта. Borland Pascal позволяет задать принудительную инкапсуляцию с помощью использо- вания описания private в объявлении объекта.
Примечание: Подробнее о принудительной инкапсуляции рассказывается ниже в разделе "Секция private".