Работа в Plone основана на создании и манипулировании объектами. Под объектом понимается программный элемент, созданный по определенным правилам. Набор таких правил принято называть классом объекта. Понятие класса является одним из основных во всех областях, связанных с обработкой информации на компьютерах. Рассмотрим пример. Предположим, что имеется компьютерная программа, позволяющая редактировать текстовые файлы, — текстовый редактор. Такая программа существует независимо от обрабатываемых ею текстовых файлов. Это означает, что как программа, так и файлы могут удаляться, копироваться на другие устройства хранения независимо друг от друга. С функциональной точки зрения редактор представляет набор инструментов для обработки информации, в данном случае текстовой, а файл — хранилище этой информации. Если объединить набор правил, определяющих алгоритмы обработки информации, с правилами ее хранения, то такой набор и будет описанием класса.
![]() | Замечание |
|---|---|
По описанию класса можно создавать неограниченное количество экземпляров — объектов класса. Каждый такой элемент содержит информацию и инструментарий ее обработки. Информация в объекте представлена набором свойств объектов, а функциональность — методами объекта. |
Применительно к текстовому файлу свойства будут использоваться для хранения самого текста, вида шрифта, его размера, цвета и т.п. Методы будут определять способы обработки текста — редактирование, хранение, проверку правописания и т.п. В нашем случае можно сказать, что набор объектов представляет собой набор текстовых редакторов, каждый из которых редактирует только свой текст, хранимый в теле объекта.
Все содержимое сайта рассматривается как набор определенного количества объектов определенных классов (типов). Каждый тип предназначен для представления определенной функциональности. В Zope и Plone применяется широкий перечень таких типов, которые в основном подразделяются на три типа: контент-типы, типы-публикаторы и контейнерные типы. Объекты контент-типа (контент-объекты) предназначены для хранения информации различного типа. Так, например, для хранения изображений и текстовых файлов используются разные контент-объекты. Объекты, относящиеся к типам-публикаторам (объекты-публикаторы), предназначены для создания шаблонов веб-страниц, которые затем заполняются содержимым соответствующих контент-объектов: текстовых файлов, изображений, веб-страниц. Объекты контейнерных типов (объекты-контейнеры или контейнеры) предназначены для хранения других объектов, независимо от типа этих объектов. Контейнеры объединены в иерархию включения (подобно каталогам файловой системы) и позволяют разработчику создавать сложные, разветвленные древовидные структуры контейнеров.