Применяя это к программированию, парадигма означает, на что мы будем разделять предметную область или то, что мы собираемся автоматизировать. Помним, что программирование — это про автоматизацию чего-то. Для того чтобы автоматизировать, мы должны в голове разделить задачу (декомпозировать) на какие-то элементы.
ООП создано, чтобы упростить чтение и понимание кода. Ведь по своей природе человеку свойственно воспринимать мир как набор объектов, что такое ооп простыми словами которые поддаются классификации. Это как раз основная суть взаимоотношений между классами и объектами, описанная выше.
Что такое аннексия и ее отличие от оккупации: рассказываем простыми словами
Обычно объекты в подобном коде представляют собой полноценные блоки с данными, которые имеют определенный набор характеристик и возможностей. Объекты могут взаимодействовать друг с другом, пользователем и любыми другими компонентами программы. В примере выше объект создаётся с уже заданными значениями, но есть возможность указывать свои параметры. Для этого используются конструкторы — специальные методы, которые запускаются при инстанцировании экземпляра класса. С их помощью можно передать объекту параметры и провести необходимые операции.
Абстрагирование — это способ выделить набор наиболее важных атрибутов и методов и исключить незначимые. Соответственно, абстракция — это использование всех таких характеристик для описания объекта. Важно представить объект минимальным набором полей и методов без ущерба для решаемой задачи. В отличие от процедурного, объектно-ориентированное программирование позволяет вносить изменения один раз — в объект. Все операции представляются как взаимодействие между объектами.
Плюсы и минусы объектно-ориентированного программирования
Объясним наследование ООП для чайников на простом примере. На заводе по выпуску автомобилей необходимо модернизировать модельный ряд и добавить туда новые функции. У нас есть предыдущие модели, которые мы берем за основу (разрабатывать с нуля нет смысла). Всё самое удачное мы наследуем от прежних автомобилей, дополняя и меняя что-то по необходимости. Зачем писать полностью новый код, если можно взять его часть, основу, из предыдущих разработок? Не нужно каждый раз создавать новый класс или объект с полным набором опций.
Это всего лишь набор данных и функций — таких же, как в традиционном функциональном программировании. Можно представить, что просто взяли кусок программы и положили его в коробку и закрыли крышку. И чтобы
пользователь класса не мог случайно или намеренно вмешаться в его внутреннюю
работу, данные и методы можно скрывать.
Процедурная парадигма
Процедурное программирование идеально работает в простых программах, где все задачи можно решить, грубо говоря, десятком функций. Функции аккуратно вложены друг в друга, взаимодействуют друг с другом, можно передать данные из одной функции в другую. Чаще всего под обычным понимают процедурное программирование, в основе которого — процедуры и функции. Функция — это мини-программа, которая получает на вход какие-то данные, что-то делает внутри себя и может отдавать какие-то данные в результате вычислений. Представьте, что это такой конвейер, который упакован в коробочку.
Достаточно объявить «Домашнюю кошку» наследником «Кошки» и прописать новые атрибуты и методы — вся остальная функциональность перейдёт от родителя к потомку. При создании класса мы упрощаем его до тех атрибутов и методов, которые нужны в этом конкретном коде, не пытаясь описать его целиком и отбрасывая всё второстепенное. Скажем, все кошки теоретически умеют охотиться, но если наша программа не предназначена для ловли мышей, то и прописывать этот метод незачем. Используя эти свойства и методы, можно значительно ускорить разработку, сделать код более читаемым. К тому же самому программисту проще составлять код, если он думает с помощью объектов.
Недостатки ООП
Таким образом, в ней можно работать изолированно, а доступ одних компонентов к другим ограничен. Это особенно важная опция при совместной работе разных программистов над продуктом. Применяя инкапсуляцию ООП, специалист «прячет» в свой раздел ПО часть данных, которую никто не сможет увидеть и изменить. В поле зрения остается тот функционал, который нужен для совместной работы. Другие пользователи (знакомые) их знают, но как-то повлиять на эти характеристики (изменить) не могут. Это можете сделать только вы, обратившись в соответствующую инстанцию.
- Это называется спагетти-код, и для борьбы с ним как раз придумали объектно-ориентированное программирование.
- Обычно объекты в подобном коде представляют собой полноценные блоки с данными, которые имеют определенный набор характеристик и возможностей.
- Из этого термина можно сделать вывод, что ООП — это такой подход к программированию, где на первом месте стоят объекты.
- А можно написать один полиморфный метод, а потом использовать его для каждого нового объекта — и вот это как раз наш случай.
- Чтобы создать метод, который будет иметь доступ к объекту и сможет менять данные в нем, в JS используется ключевое слово this.
Абстракция четко определяет концептуальные границы объекта, оставляя только ключевые характеристики. Чтобы создать метод, который будет иметь доступ к объекту и сможет менять данные в нем, в JS используется ключевое слово this. В отличие от других языков оно не будет привязано к объекту, а просто будет означать объект, вызвавший функцию. Следующий принцип ООП, наследование, – это процесс, с помощью которого один класс может наследовать свойства и методы другого, дополняя их при необходимости своим функционалом. При помощи ООП наследования становится возможным повторное использование кода.
Объектно-ориентированная парадигма
В практике PHP ООП используются разные среды разработки, привычные девелоперу. Также нет особых требований к веб-серверу, хотя большинство разработчиков пользуются Open Server. Вся необходимая документация по классам и объектам ООП PHP представлена на официальном сайте.
Для чего нужен полиморфизм
В результате может образоваться много плохо читаемого, перемешанного кода — «спагетти-кода» или «лапши». Если вы тот самый человек, который сейчас выбирает курс по обучению программированию, подумайте над тем, что в этом курсе вам собираются дать. Я рассказал вам фактически все, что вы должны знать про саму парадигму ООП.