Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5 для начинающих

  Все выпуски  

Предпосылки возникновения ООП


Введение в Zend Framework

Глава 1. Шаблон проектирования MVC

В предлагаемом материале рассмотрены следующие положения:
- ооновные свойства шаблона проектирования MVC;
- три составляющих его слоя;
- их взаимодействие между собой и с внешней средой;
- отличительные особенности реализации веб приложений;
- преимущества шаблона.

ЧИТАТЬ

Вниманию читателей!

Отдельные выпуски рассылки в той или иной мере взаимосвязаны. С предыдущими выпусками Вы можете ознакомиться:

  1. в архиве рассылки (оригиналы выпусков);
  2. на сайте рассылки (исправленные и дополненные версии).

# # #

Вы также можете подписаться на рассылку "PHP 5: Новые возможности".

PHP 5 для начинающих

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

  1. Формированию представления об особенностях эволюции типов данных.

  2. Формированию представления о некоторых парадигмах программирования - предшественницах объектно-ориентированного программирования.

  3. Формированию понимания причин, лежащих в основе развития типов данных и смены парадигм программирования, что, в конечном итоге, привело к возникновению объектно-ориентированного программирования.

[Замечание]Замечание

Данный обзор не претендует на полноту; напротив, из всего исторического многообразия отобраны лишь те тенденции и явления, которые, по мнению автора, имеют важное значение для понимания закономерности появления ООП.

Простые, или скалярные, типы (целые и вещественные числа, логические значения, символы) были доступны уже в самых ранних языках программирования, так как эти типы данных непосредственно поддерживались компьютерами на встроенном уровне. Однако, по мере возрастания сложности задач, которые ставились перед программистами, и увеличением объема данных (особенно, сходных, обрабатываемых единообразно) становилась все более заметной ограниченность этих типов, связанная с тем, что скалярная величина представляет только одно значение.

Действительно, для того, чтобы задать значения десяти (пятидесяти, ста) переменным нужно было десять (пятьдесят, сто) раз ввести в программу команду присвоения; чтобы возвести эти переменные в квадрат - десять (пятьдесят, сто) раз ввести команду умножения переменной на саму себя; чтобы напечатать результат - столько же раз ввести команду вывода на печать... А если таких переменных были тысячи или десятки тысяч?

Первые языки программирования были практически лишены средств управления потоком выполнения команд. Заданные при написании программы команды выполнялись последовательно одна за другой, и только иногда эта монотонная последовательность нарушалась оператором безусловного (GOTO) или условного (IF GOTO) перехода на определенную строку программы. Весь командный код воспринимался как единый однородный блок.

Безусловно, с ростом сложности и объема решаемых задач такой стиль программирования стал вызывать серьезные проблемы. Вынужденное использование множества команд перехода приводило к возникновению запутанных цепочек вычислений, в которых подчас было трудно разобраться самому автору программы, не говоря уже о его коллегах. Отладка и сопровождение программ также становилось все более проблематичными.

Таким образом, в программировании сформировалась отчетливая тенденция к структуризации путем все более тесного объединения взаимосвязанных данных и фрагментов кода в одном блоке при все большем отделении таких блоков друг от друга. В конечном итоге, эта тенденция привела к возникновению объектно-ориентированного программирования, которое в 90-х годах заняло господствующее положение.

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

Например, объект "Служащий" может обладать следующими свойствами: "фамилия", "имя", "отдел", "должность", "оклад"; а также методами: "прочитать имя и фамилию", "перевести в другой отдел", "выплатить зарплату", "уволить" и т. п.

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

Created with DocBook


В избранное