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

Полное руководство!

ООПОобъектно-ориентированное Опрограммирование! (Видеоверсия этого блога есть на YouTube, смотрите здесь)

Краткий обзор ООП

ООП — это просто причудливый способ сказать, что все экземпляры классов являются объектами.

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

Видите, я только что привел реальный пример с использованием терминов кодирования?!

В ООП вы можете думать обо всем как о реальных объектах.

Ваш редактор кода — это ваша мастерская, а ваш проект — цель мастерской (так мне нравится думать об этом).

Допустим, вы создаете приложение-библиотеку (поскольку мы уже использовали этот пример ранее).
Ваш редактор кода (скажем, VSCode) — это ваша мастерская (библиотека в данном случае).

Вы создаете список variable(), где храните все свои книги, и эта переменная представляет собой полку в вашей библиотеке.

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

Вы поняли.

ООП — это способ разработки ваших проектов!

Думайте об этом как о способе проектирования систем. Который доступен для всех (если не для большинства) языков кодирования!

И поскольку это механизм проектирования (именно так я его называю), у него есть пара целей и принципов!

Цели

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

Надежность

Проще говоря, программа, которая выдает правильные выходные данные для всех ожидаемых входных данных в приложении программы, но также способна обрабатывать неожиданные входные данные.

Например, вы можете захотеть, чтобы в конце формы электронной почты всегда было @gmail.com. Возможно, ваши пользователи не добавляют @gmail.com ваше приложение должно справиться с этим!

Адаптивность

Ваша программа должна развиваться с течением времени в соответствии с новыми тенденциями и потребностями рынка!

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

Возможность повторного использования

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

Например, вместо функции, в которой вы фильтруете одну конкретную модель (из базы данных), у вас есть функция, в которой вы можете фильтровать каждую модель с любым выбранным полем, вам просто нужно передать параметры!

Принципы

Это подходы (думайте о них как о методах) для достижения целей, упомянутых выше.

Модульность

Модульность означает наличие различных компонентов (в вашем приложении), каждый из которых имеет свои собственные функции.

Другими словами, держите все в порядке.

Не втискивайте все в одно место, найдите место для всего!

Абстракция

Абстракция означает разбиение системы на ее самые фундаментальные (простейшие) компоненты!

Что-то вроде Разделяй и властвуй!

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

Различные компоненты приложения не должны раскрывать внутренние детали соответствующих реализаций.

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