Pattern Guru. Шаблоны проектирования. Архитектура ПО
5.82K subscribers
215 photos
3 videos
123 links
Патерны программирования.
Архитектура ПО.
Микросервисы

@anothertechrock
Download Telegram
Вопрос с собеседования

Для чего нужен Decorator паттерн в Javascript?
Приведите пример.

Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!

#interview
🥱3
Вопрос с собеседования

В чем разница между классом и структурой?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

В чем разница между классом и структурой?

Ответ:

Класс – это определенный пользователем чертеж, на основе которого создаются объекты. Он состоит из методов (набор инструкций), которые выполняются над объектами.

Структура – это определенная пользователем коллекция переменных. Структуры также являются различными типами данных.

#interview
🤮5
Вопрос с собеседования

Для чего нужен Decorator паттерн в Javascript?
Приведите пример.

Ответ:

Javascript предоставляет удивительно гибкие возможности по работе с функциями: их можно передавать, в них можно записывать данные как в объекты, у них есть свои встроенные методы.

Шаблон декоратора динамически расширяет (украшает) поведение объекта. Возможность добавления нового поведения во время выполнения достигается с помощью объекта Decorator, который «оборачивается» вокруг исходного объекта. Несколько декораторов могут добавлять или переопределять функциональность исходного объекта.

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

Декораторы обеспечивают гибкость статически типизированных языков, позволяя вносить изменения во время выполнения, а не наследование, которое происходит во время компиляции. Однако JavaScript - это динамический язык, и возможность расширения объекта во время выполнения встроена в сам язык.

Пример использования декоратора в JavaScript:

function User(name) {
this.name = name,
this.print = () => console.log(this.name)
}

const jane = new User ('Jane Doe')
jane.print() // 'Jane Doe'

function DecorateWithCity(user, city) {
user.city = city
user.print = function() {
console.log (${this.name} from ${this.city})
}
}

DecorateWithCity(jane, 'NewYork')
jane.print(); //'Jane Doe from New York'


#interview
👍1
Вопрос с собеседования

Зачем нужна инкапсуляция?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Зачем нужна инкапсуляция?

Ответ:

Инкапсуляция позволяет скрыть данные и обернуть данные и код, который работает над ними, в единое целое.

#interview
1
Вопрос с собеседования

Что такое виртуальные функции?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое виртуальные функции?

Ответ:

Виртуальные функции – это часть функций, которые присутствуют в родительском классе, и они переопределяются подклассом.

Эти функции помогают достичь полиморфизма во время выполнения.


#interview
👍2🙈2
Вопрос с собеседования

Что такое Dependency inversion principle?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое Dependency inversion principle?

Ответ:

Dependency inversion principle - принцип инверсии зависимостей.

Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

#interview
👎3👍1😁1