tgoop.com/prog_way_blog/161
Last Update:
Шпаргалка по пинципам ООП.
Один из самых частовстречающихся вопросов по ООП с собеседований. Разберёмся в этой теме кратко, такого ответа чаще всего хватит интервьюеру.
1. Наследование.
Наследование — механизм, который позволяет описать новый класс на основе существующего, то есть родительского. При этом свойства и функциональность родительского класса заимствуются новым классом.
В первую очередь это используется для переиспользования уже написанного кода, что должно упростить и ускорить разработку. Классы строятся друг на друге, что выстраивает чёткую иерархию.
2. Абстрация.
Абстрация — выделение главного. Суть заключается в выделении только самого главного и абстрагировании от незначительного. Например, у класса Auto
мы создадим поля, например, fuel
, mark
, age
, engine
, а от поля lightsColor
абстрагируемся, так как для нашей задачи это не важно.
3. Инкапсуляция.
Это скрытие чего либо, ограничения доступа к данным и к возможности их изменения. Как пример — код от учетной записи. Если записать его на листочке и повесить его на монитор, то любой «пользователь», севший за компьютер, получит к ней доступ и сможет поменять пароль. Так же для пользователя выглядят публичные переменные класса.
Инкапсуляция же сделает данные недоступными извне либо только для изменения, либо для любых операция в целом.
4. Полиморфизм.
Полиморфизм — возможность работать с разными типами данных, не зависимо от этого, получая подобный результат. Чтобы лучше понять о чем речь, рассмотрим такой код:
class Person {
say() {
console.log("I'm nobody")
}
}
class Programmer extends Person {
say() {
console.log("I'm programmer")
}
}
class Director extends Person {
say() {
console.log("I'm director")
}
}
У объектов классов
Person
, Programmer
и Director
, одинаковый интерфейс взаимодействия. При том, что они имеют разные типы, поведение подобное. Это и есть смысл полиморфизма. И на этом в целом всё. Спасибо за прочтение, это важно для меня ❤️
#web #theory #javascript
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/161