Общение


Объектный характер веб и публикация объектов - часть 2


Эта идея является исключительно важной и плодотворной: объектно-ориентированные программные компоненты в среде публикации объектов Zope встроены в четкую, прозрачную иерархическую модель. URL публикуемого объекта — это путь к нему по включающим его контейнерным объектам, от самого верхнего до самого нижнего. При обработке URL платформа Zope последовательно раскрывает включающие контейнерные объекты, переходя к публикуемому объекту не сразу, а только после прохождения через все контейнеры.

По своей структуре URL, применяемый в среде публикации объектов Zope, напоминает путь к HTML-странице в обычном веб-сервере, но на этом сходство объектной иерархической модели с файловой системой заканчивается. Контейнерный объект приобретает все включенные в него объекты в качестве атрибутов. Тем самым, контейнер может иметь не только собственные, но и приобретенные атрибуты. Любой объект, включенный в контейнер, может обращаться к атрибутам не только данного контейнера (в том числе, безусловно, к самому себе как к атрибуту контейнера), но и к атрибутам всех вышестоящих контейнеров.

Это новое объектное отношение: приобретение атрибутов в иерархии включения. В среде Zope для построения иерархии объектов применяется не отношение наследования, а отношение приобретения. Объект, расположенный на более низком уровне иерархии, может приобретать все атрибуты всех объектов верхнего уровня. Приобретение атрибута — это не просто возможность получить к нему доступ, а возможность обращаться к нему как к своему собственному атрибуту.

Своим «собственным» (а в действительности, приобретенным) атрибутом объект пользуется, не «зная» о том, как он устроен (атрибут остается для него «черным ящиком»), а только «зная» о том, что он существует и обладает определенными свойствами. Например, типичным средством на сайтах Zope является автоматическое построение навигационной планки на каждой веб-странице. веб-страница сама «узнает», какой путь ведет к ней (обратившись к атрибуту PARENT) и какие подпапки есть еще в этой папке, и автоматически строит навигационную планку.




Начало  Назад  Вперед