Найти тему

Философия программирования или ООП для самых маленьких

Оглавление

Написав, свой первый калькулятор по туториалу из ютуба, вы, возможно, поймаете себя на мысли.

«Как программисты создают огромные системы и при этом не запутываются в коде?»

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

-2

Что такое ООП

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

Для введения стоит пояснить, что значит объектно-ориентированный. В ООП чаще всего идет взаимодействие с классами и их экземплярами. Разберем на примере пиццы: класс – это рецепт, в котором описаны размер пиццы, время на готовку и т.п. А экземпляр (объект) – конкретная пицца, например Пеперони или Маргарита.

-3

По сути класс – это описание объекта, какими свойствами он будет обладать. А объект – это экземпляр с настроенными свойствами.

Принципы ООП

Вернемся к ООП. Всего в парадигме 4 принципа.

1. Наследование

Это механизм, позволяющий перенимать свойства и поведение других классов для дальнейшего изменения.

Зачем изобретать много раз велосипед, если можно сделать один общий чертеж для схожих черт. Различия же будут описываться в дочерних классах (потомках).

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

-4

Разберем на примере кода

2. Абстракция

Здесь все довольно просто. Принцип подразумевает выделение наиболее значимых характеристик объекта и наоборот — отбрасывание незначительных.

Для приготовления пиццы нам нужно знать время на приготовление, размер и наполнение. Нам не нужна информация о производителе теста, о сроках хранения.

3. Инкапсуляция

Это разграничение доступа к данным объекта. За это отвечают модификаторы доступа. Выделяют всего 3 основных:

· publiс – данные может получить любой желающий

· private – данные могут получить только методы данного класса

· protected – то же, что и private, только доступ получают и наследники класса

Например, клиенту не нужно знать, как готовится пицца. Его интересует только цена и время на приготовление. При этом он может выбрать размер пиццы, а от нее зависит стоимость.

4. Полиморфизм

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

Заключение

Этими принципами руководствуются все опытные программисты. Как было сказано до этого:

ООП не панацея от всех багов и бед программы.

ООП позволяет граммотно выстраивать архитектуру программы. Не существует единой методички, где стоит применять аспекты ООП и его паттерны. Это приходит с опытом.