Перейти до основного вмісту

Публікації

Показано дописи з міткою "ООП"

ООП у TypeScript

Короткий вступ TypeScript додає статичну типізацію поверх JavaScript і підтримує класичні концепти ООП: класи , успадкування , інтерфейси , інкапсуляцію , поліморфізм та абстракції . Нижче — практичні приклади та пояснення. Класи — декларація, конструктор, властивості та методи class Person { public name: string; private age: number; protected email?: string; // необов’язкове static species = 'Homo sapiens'; constructor(name: string, age: number, email?: string) { this.name = name; this.age = age; this.email = email; } public greet(): string { return `Hi, I'm ${this.name}.`; } private getBirthYear(currentYear: number): number { return currentYear - this.age; } } const p = new Person('Ivan', 30, 'ivan@example.com'); console.log(p.greet()); // console.log(p.age); // помилка: 'age' приватне console.log(Person.species); Успадкування і перевизначення (extends, super) class Employee extends Person { ...

Агрегати в DDD

Domain-Driven Design (DDD, предметно-орієнтоване проєктування) — це підхід до розробки програмного забезпечення, який зосереджується на моделюванні бізнес-логіки на основі реального домену (предметної області). Його запропонував Ерік Еванс у своїй книзі "Domain-Driven Design: Tackling Complexity in the Heart of Software". Основні принципи DDD Фокус на домені – головна увага приділяється предметній області, а не технічним деталям. Єдина мова (Ubiquitous Language) – розробники, бізнес-аналітики та інші учасники проєкту використовують спільну термінологію, щоб уникнути непорозумінь. Бізнес-логіка відокремлена від технічної реалізації – код моделюється так, щоб він чітко відображав реальний бізнес-процес. Основні концепції DDD Entity (Сутність) – об’єкт з унікальним ідентифікатором, що зберігається в системі (наприклад, Користувач, Замовлення). Value Object (Об’єкт-значення) – об’єкт, який не має унікального ідентифікатора та є незмінним (наприклад, Адреса або Гроші)...

Патерн Builder в Java

Проблема У нас є клас, який містить велику кількість полів. Частина із цих полів є обов'язковими, а частина ні. Потрібно створити "інструменти" для створення екземплярів цього класу. Приклад. У нас є клас Користувач (User), який містить 3 обов'язкових поля: Ім'я, Прізвище, ЕлектроннаПошта та ряд неов'язкових. public class User { private String firstName; private String lastName; private String email; private String middleName;//optional private int age;//optional private String address;//optional private String comment;//optional private String phone;//optional //... } Розглянемо можливі рішення Використання перевантажених конструкторів В Java є можливість створити ряд конструкторів із різним набором параметрів. public class User { private String firstName; private String lastName; private String email; private String middleName;//optional private int age;//optional private String address;//...