Объектно-ориентированное программирование или ООП

 Здравствуйте Дорогие читатели! В предыдущем уроке я обещал рассказать что такое ООП.

 

  Так в чем же основные преимущества ООП, почему оно стало таким популярным?

  Трудно ответить на этот вопрос не объяснив базовых понятий. Усвоив базовые понятия ООП, вы скорее всего сами  без труда ответите на этот вопрос.

3 основных (базовых) понятия ООП .

  К ним относятся:

 -Наследование (Inheritance)

 -Инкапсуляция (Encapsulation)

 -Полиморфизм (Polymorphism)

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

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

Первое из них имеет  академический оттенок:

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

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

Не очень понятно? Начнем с общеизвестного примера.

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

Что Вы сделали для того, чтобы получить соль? Просто сказали: "Дай мне, пожалуйста, соль".

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

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

Так в чем же разница?

Разница заключается в том, что объектно-ориентированный подход с просьбой передать солонку оставляет за объектом (Вашим другом) право решать как отреагировать и что сделать в ответ на поступившую просьбу. А Вы можете даже не знать (к примеру, не видеть) как Ваш друг (объект) выполнил Вашу просьбу. А зачем Вам это знать? Вы в стандартной форме поставили перед ним задачу (сделали вызов) и получили ответ.

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

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

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

 

Это всего лишь часть ООП. Если вы хотите научиться программировать или вам просто интересно что такое ООП, вы можете прочитать дополнительную информацию в интернете.

 

До скорых встреч!

 

« Вернуться назад

Просмотров: 4999 | Дата: 16.09.2012



Яндекс.Метрика

наверх