Введение .
00:00:00У цьому відео я поясню концепцію об'єктно-орієнтованої парадигми простою мовою та на практичних прикладах. Концепції не прив'язані до конкретної мови програмування і будуть корисні для JavaScript, Java, C++ і т.д. хоча приклади написані машинописною мовою, вони зрозумілі і розробникам Java.
Отличие процедурного подхода от объектно-ориентированного.
00:00:55Процедурний підхід фокусується на покроковій послідовності інструкцій, що використовують функції для обробки даних. Навпаки, об'єктно-орієнтований підхід наголошує на інкапсуляції, успадкуванні та поліморфізмі для кращої організації та управління кодом.
Классы. Объекты. Свойства. Методы. Конструктор.
00:02:10Об'єктно-орієнтований підхід сприймається як грандіозне рішення всіх проблем в співтоваристві програмістів. Він включає в себе два ключових поняття: "клас" і "об'єкт". Клас представляє характеристики, тоді як об'єкт - це конкретний екземпляр класу зі значними значеннями для його характеристик.
Инкапсуляция и сокрытие. Модификаторы доступа.
00:04:40Інкапсуляція Інкапсуляція-це концепція змісту властивостей і методів всередині класу, що дозволяє здійснювати до них внутрішній доступ, але не зовнішній. Це гарантує, що логіка програми залишається незмінною, забезпечуючи при цьому контроль доступу до даних.
Модифікатори доступу Модифікатори доступу, такі як public та private, використовуються для контролю доступу до властивостей та методів у класі. До приватних властивостей можна отримати доступ лише всередині класу, тоді як до загальнодоступних можна отримати доступ ззовні. Одержувачі та установники забезпечують контрольований доступ до приватних властивостей.
Приклади сценаріїв Приклади включають визначення закритих полів для конфіденційних даних, таких як паролі, використання засобів отримання/встановлення для контрольованого маніпулювання властивостями, забезпечення унікальних ідентифікаторів за допомогою статичних полів /методів та управління таблицями бази даних за допомогою інкапсульованих методів.
Наследование.
00:11:50Успадкування в об'єктно-орієнтованому програмуванні Успадкування-це фундаментальна концепція, при якій один клас успадковує властивості та методи від іншого класу. Це забезпечує можливість повторного використання коду, масштабованість та ефективність обслуговування. Підкласи можуть розширювати функціональність своїх батьківських класів, додаючи унікальні властивості та методи.
Практична реалізація успадкування Щоб реалізувати успадкування в Java, ми створюємо такі класи, як "Person", "Employee" і "Developer", з певними атрибутами, такими як ім'я, вік, ідентифікаційний номер співробітника (для Employee), знання мови програмування (для Developer) і т.д. кожен підклас успадковує властивості і методи свого батьківського класу, використовуючи ключове слово "extends". Ефективно використовуючи успадкування, ми можемо побудувати ієрархію класів з унікальними характеристиками, сприяючи повторному використанню коду.
Полиморфизм. Параметрический и ad-hoc
00:16:40Розуміння поліморфізму Поліморфізм дозволяє фрагменту коду працювати з різними типами даних. Це один з найважливіших принципів об'єктно-орієнтованого програмування, що дозволяє працювати з різними типами даних, використовуючи один і той же код.
Спеціальний поліморфізм Спеціальний поліморфізм передбачає перевантаження методу, дозволяючи методу працювати по-різному залежно від типу вхідних даних, які він отримує. Це можна побачити в прикладі, де методи обробляють різні привітання для об'єктів, створених з різних класів.
Параметричний поліморфізм Параметричний поліморфізм пов'язаний із створенням функцій, які можуть приймати необмежену кількість об'єктів, успадкованих від батьківського класу. У цьому випадку ми створюємо функцію, яка однаково вітає всі об'єкти незалежно від їх конкретного типу в масиві.
Агрегация и композиция.
00:23:00Агрегація та склад Успадкування дозволяє класам повторно використовувати код, але існують інші способи взаємодії КЛАСІВ. Ми зосередимося на агрегації та композиції. Композиція передбачає, що один клас використовує об'єкти іншого класу внутрішньо, створюючи відносини залежності, при яких об'єкти не можуть існувати незалежно.
Різниця між агрегацією та складом Ключова відмінність полягає в тому, що в composition об'єкт живе власним життям, незалежним від основного класу, тоді як в aggregation, якщо основний об'єкт видалено, агреговані об'єкти продовжують існувати.
Интерфейсы и абстрактные классы.
00:26:35Абстрактні класи та інтерфейси Абстрактні класи схожі на інтерфейси, але вони можуть мати реалізації методів з логікою. Інтерфейси не можуть бути створені екземплярами або містити об'єктні поля. Вони дозволяють створювати більш гнучкий код і досягати поліморфізму.
Реалізація інтерфейсів Інтерфейси ,такі як' Reader 'та' Writer', визначають методи без деталей реалізації. Клас, що реалізує інтерфейс, повинен надавати фактичні реалізації методів, забезпечуючи гнучкість при роботі з різними об'єктами, такими як користувачі або сховища даних, за допомогою універсальних типів.
Внедрение зависимостей. Dependency injection
00:32:30Принципи впровадження залежностей Сьогодні принципи впровадження залежностей необхідні для створення надійних і практичних шаблонів проектування. Додаток розділений на рівні: перший рівень обробляє логіку бази даних, тоді як другий рівень містить бізнес-логіку та взаємодіє з різними реалізаціями сховища, не знаючи, яку з них він використовує.
Реалізація впровадження залежностей Сервісний рівень використовує інтерфейс для взаємодії з методами сховища, забезпечуючи гнучкість у виборі між реалізаціями MongoDB або PostgreSQL. Використовуючи вбудовування конструктора, ми можемо перемикатися між різними реалізаціями сховища, не змінюючи сам клас служби.
Паттерн singleton
00:37:10Шаблон singleton гарантує, що створюється лише один екземпляр класу. Це корисно для підключень до бази даних, щоб уникнути кількох екземплярів та забезпечити узгодженість даних. Використовуючи статичні поля та методи, ми можемо отримати доступ до класу без створення об'єкта, гарантуючи створення лише одного екземпляра.
Время ставить лайки и писать комментарии :)
00:39:00У відео обговорюється концепція об'єктно-орієнтованого програмування і шаблон Singleton, підкреслюється, що незалежно від того, скільки об'єктів створено, вони завжди будуть давати один і той же результат. Мета відео-пояснити цю парадигму простими словами та прикладами з реального життя, щоб зробити її зрозумілою навіть для тих, хто не знайомий з ООП.