Найти в Дзене
Zen coder

Появление ООП и в чем его сила

Оглавление
Тадж-Махал (иллюстрация взята из открытых источников)
Тадж-Махал (иллюстрация взята из открытых источников)

Идея статьи навеяна книгой «Философия Java» Брюса Эккеля, в статье дается мое понимание тем, описанных в книге.

Немного истории

На заре компьютерной эры написание программ являлось крайне трудоемким процессом. Это было время зарождения самых основ, начало перехода от математических теорий в прикладную плоскость.

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

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

Пример программы на ассемблере
Пример программы на ассемблере

Вслед за ассемблером возникли языки более высокого уровня, такие как Fortran, Algol, C - эти языки обладали значительным преимуществом перед ассемблером, но по прежнему заставляли мыслить в контексте структуры компьютера, а не решаемой задачи.

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

Так в чем же сила ООП?

Такой подход имеет общий характер и не накладывает ограничений на тип решаемой задачи. Любые задачи могут быть решены в рамках ООП.

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

Хорошо спроектированную программу легко понять. Читая код, вы видите все элементы исходной задачи и их взаимосвязи, это значительно упрощает поддержку и дальнейшее развитие программы.

#программирование #Java