Аргерих Л. О языке РНР. Часть 1. Страница 90


Необходимость компромисса между производительностью и удобством со­провождения стала к тому времени очевидна. Для некоторых приложений реального времени или с интенсивными вычислениями вопрос о переходе к объектно-ориентированным приложениям даже не возникает из-за строгих временных требований. Однако если применение ООП допустимо, програм­мисты могут создавать многократно используемые и более интуитивные программы, чем когда-либо прежде. Это улучшает читаемость кода, благо­приятствует его повторному использованию, сопровождению и трассировке.

С развитием ООП появились новые методологии управления проектами и проектирования программного обеспечения, такие как небезызвестное «экс­тремальное программирование» (extreme Programming) и «единый про­цесс» (Unified Process). Стало легче оценивать и планировать проекты, рас­пределять тестировать и разбирать код больших проектов. В дейст­вительности внедрение ООП оказало значительное влияние на современный мир, управляемый электроникой. Такие технологии, как Java, развили ООП в предельной степени, предлагая единое ОО-решение для разработки программ управления устройствами, мощных веб-приложений и приложе­ний для настольных компьютеров с помощью промышленного API.

Сравнение функциональных и объектно-ориентированных программ

Так в чем отличие между функциональными программами и ООП? Создавая код приложения при помощи функций, мы получаем программы, ориенти­рованные на код (code-centric). Такие приложения последовательно вызыва­ют функции одну за другой. На вход посылаются данные, затем функция осуществляет их фактическое преобразование и после возвращает соответст­вующий результат. В ООП принят противоположный подход, ориентиро­ванный на данные (data-centric). Объекты, представляющие свои данные внутренним образом, содержат функции, которые называются методами.

Метод - это сервис (весьма сходный с реализацией функции), который объ­ект гарантированно предоставляет своим клиентам (другим объектам). Ког­да один объект запрашивает сервис у другого, он, по существу, посылает со­общение и получает ответ. Вот сравнение этих двух подходов (рис.

Входные данные поступают в функцию которая вызывает функцию и выводит результат на выход а(). Функция о() вызывает с() и выводит ре­зультат на выход Ь(). Функция с() возвращает свой результат в Ь(), которая возвращает свой результат в а (). Функция а () в конечном итоге порождает результат выполнения программы. Функция а( )в типичной программе на С называется main. В объектно-ориентированной модели одни объекты запра­шивают сервисы у других, что видно, когда Object 1 запрашивает сервис у объекта Object 3. Object 3, в свою очередь, запрашивает сервис у объекта Object 4, и так далее, пока Object 1 не получит от Object 3 ответ с конечным результатом.




Заказ самолета сегодня это уже не фантастика, а реальность нашего быстротечного мира. Потому деловая авиация очень важна для каждого бизнеса. Теперь встречу нет смысла подстраивать под расписание, а вы подстраиваете расписание под встречу.