Абстракция

Полиморфизм

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

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

Базовые принципы ООП

Абстракция

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

a

Полиморфизм

Полиморфизм позволяет использовать один и тот же интерфейс для разных типов данных. Это означает, что один и тот же метод может работать по-разному в зависимости от объекта, который его вызывает. Полиморфизм делает код более гибким и расширяемым, так как позволяет добавлять новые классы без изменения существующего кода.

pol

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

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

Класс может унаследовать (использовать по умолчанию) поля и методы своего предка. Наследование транзитивно: класс может наследоваться от другого класса, который наследуется от третьего, и так далее вплоть до базового класса (обычно — Object), возможно, неявного. Наследник может переопределить какие-то методы и поля чтобы изменить поведение по умолчанию.

Композиция. если поле у нас имеет тип Класс, оно может содержать ссылку на другой объект этого класса, создавая таким образом связь между двумя объектами. Не влезая в дебри различий между простой ассоциацией, агрегированием и композицией, давайте "на пальцах" определим: композиция — это когда один объект предоставляет другому свою функциональность частично или полностью. See also

n

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

Размещение одного объекта или класса внутри другого для разграничения доступа к ним

Мы обращаемся с объектами как с единой сущностью, а не как с набором отдельных полей и методов, тем самым скрываем и защищаем реализацию класса. Если клиентский код не знает ничего, кроме публичного интерфейса, он не может зависеть от деталей реализации.

inc

Principles of Object-oriented Programming in TypeScript