ВУЗ:
Составители:
Рубрика:
Страуструп в 1988 году писал, что обоснование «объектной ориентиро-
ванности» чего-либо, в большинстве случаев, сводится к ложному сил-
логизму: «X – это хорошо. Объектная ориентированность – это хорошо.
Следовательно, X является объектно-ориентированным».
Всё является объектом. Вычисления осуществляются путём взаимо-
действия (обмена данными) между объектами, при котором один объект
требует, чтобы другой объект выполнил некоторое действие. Объекты
взаимодействуют, посылая и получая сообщения. Сообщение – это
запрос на выполнение действия, дополненный набором аргументов, ко-
торые могут понадобиться при выполнении действия. Каждый объект
имеет независимую память, которая состоит из других объектов. Каж-
дый объект является представителем (экземпляром) класса, который вы-
ражает общие свойства объектов. В классе задаётся поведение (функци-
ональность) объекта. Тем самым все объекты, которые являются экзем-
плярами одного класса, могут выполнять одни и те же действия. Классы
организованы в единую древовидную структуру с общим корнем, назы-
ваемую иерархией наследования. Память и поведение, связанное с эк-
земплярами определённого класса, автоматически доступны любому
классу, расположенному ниже в иерархическом дереве. Таким образом,
программа представляет собой набор объектов, имеющих состояние и
поведение. Объекты взаимодействуют посредством сообщений. Есте-
ственным образом выстраивается иерархия объектов: программа в це-
лом – это объект, для выполнения своих функций она обращается к вхо-
дящим в неё объектам, которые, в свою очередь, выполняют запрошен-
ное путём обращения к другим объектам программы. Естественно, что-
бы избежать бесконечной рекурсии в обращениях, на каком-то этапе
объект трансформирует обращённое к нему сообщение в сообщения к
стандартным системным объектам, предоставляемым языком и средой
программирования.
Устойчивость и управляемость системы обеспечивается за счёт чёт-
кого разделения ответственности объектов (за каждое действие отвечает
определённый объект), однозначного определения интерфейсов меж-
объектного взаимодействия и полной изолированности внутренней
структуры объекта от внешней среды (инкапсуляции)
Появление в ООП отдельного понятия класса закономерно выте-
кает из желания иметь множество объектов со сходным поведением.
Класс в ООП – это в чистом виде абстрактный тип данных, создаваемый
программистом. С этой точки зрения объекты являются значениями
данного абстрактного типа, а определение класса задаёт внутреннюю
структуру значений и набор операций, которые над этими значениями
могут быть выполнены. Желательность иерархии классов (а значит, на-
87
Страницы
- « первая
- ‹ предыдущая
- …
- 85
- 86
- 87
- 88
- 89
- …
- следующая ›
- последняя »
