Отступление для читателей, не знакомых с программированием
Понять смысл объектно-ориентированного программирования поможет следующая аналогия. Представим, что мы живем в hi-tech-доме будущего — доме, реагирующем на любую нашу команду. Свойствами объекта «дом» являются, например, количество комнат в доме, окраска внешних стен и дата сдачи дома в эксплуатацию. Каждый объект внутри дома реагирует на команды сообразно своим функциональным возможностям. Объекты «дверь» и «окна» могут быть открыты и закрыты, чего никак нельзя сказать про объекты «пол» и «потолок». Объект «дом» может менять некоторые свои свойства в том случае, если мы отдадим ему соответствующую команду. Например: «Дом, окрасься в синий!» Эта команда будет выполнена, и дом действительно станет синим, так как команда (метод) «окрасить» входит в число допустимых для объекта «дом».
Каждый объект, структурно входящий в объект «дом», в свою очередь, сос тоит из более мелких объектов. Каждый объект «комната» может содержать объекты «окно», «дверь», «пол», «шкаф» и т.д. Отдавать команды объектам мы можем, обращаясь к каждому из них непосредственно, или посредством команды «дому» (более старшему объекту). Так, мы можем подать команды: «Дом, открой все окна!» или «Левое окно в спальне, откройся!». Результаты выполнения этих команд различны, хотя подавалась одна и та же команда — «открыть».
InDesign подобен такому дому, комнатами которого являются развороты и полосы, а окнами — фреймы. Мы можем указать полосе поместить на себя фрейм, а фрейму указать, чтобы он изменил свои атрибуты или содержимое.