Об'єктно орієнтоване програмування включає 4 принципи:
class Animal {
public name: string;
constructor(name: string) {
this.name = name;
}
public makeSound(): void {
console.log('Animal sound');
}
}
export class Dog extends Animal {
public makeSound(): void {
console.log(`${this.name} barking`);
}
}
class Cat extends Animal {
public makeSound(): void {
console.log(`${this.name} meows`);
}
}
const tom: Animal = new Cat('Tom');
tom.makeSound(); // Tom meows
const spike: Animal = new Dog('Spike');
spike.makeSound(); // Spike barking
У класовому наслідуванні екземпляри створюються від класів. Класи створюють ієрархійне дерево наслідування.
Наявність вертикальної архітектури класів може призводити до труднощів зміни базових класів.
У прототипному наслідуванні екземпляри успадковуються з інших екземплярів. Це здійснюється через фабрики або методом Object.create.
Прототипне успадкування дозволяє створювати горизонтальну архітектуру та більш гнучкі зв'язки між екземплярами. Ви можете зв'язувати об'єкти з іншими об'єктами, використовуючи прототипи делегатів. Або просто копіювати властивості одного екземпляра в інший, використовуючи конкатенативне успадкування.
SOLID - це абревіатура, яка позначає п'ять принципів, що застосовуються в об'єктно-орієнтованому програмуванні. Ці принципи описують правильні підходи до проектування програмного забезпечення. Розглянемо кожен принцип докладніше: