Вопрос с собеседования
Проведите различие между абстракцией данных и инкапсуляцией
Ответ:
Абстракция:
- Решает проблему на уровне проектирования.
- Помогает скрыть детали реализации.
Инкапсуляция:
- Решает проблему на уровне реализации.
- Обертывает код и данные в единое целое и помогает скрыть их от посторонних глаз.
#interview
Проведите различие между абстракцией данных и инкапсуляцией
Ответ:
Абстракция:
- Решает проблему на уровне проектирования.
- Помогает скрыть детали реализации.
Инкапсуляция:
- Решает проблему на уровне реализации.
- Обертывает код и данные в единое целое и помогает скрыть их от посторонних глаз.
#interview
❤1👎1
  Вопрос с собеседования
Назовите поведенческие шаблоны и кратко опишите их.
Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!
#interview
Назовите поведенческие шаблоны и кратко опишите их.
Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!
#interview
👍3
  Вопрос с собеседования
Назовите поведенческие шаблоны и кратко опишите их.
Ответ:
Поведенческие шаблоны характеризуют способы взаимодействия классов или объектов между собой.
К поведенческим шаблонам относятся:
- Chain of Responsibility (Цепочка Обязанностей) - организует независимую от объекта-отправителя цепочку не знающих возможностей друг друга объектов-получателей, которые передают запрос друг другу (object that can fulfill a request);
- Command (Команда) - используется для определения по некоторому признаку объекта конкретного класса, которому будет передан запрос для обработки (when and how a request is fulfilled);
- Iterator (Итератор) - позволяет последовательно обойти все элементы коллекции или другого составного объекта, не зная деталей внутреннего представления данных (how an aggregate's elements are accessed, traversed);
- Mediator (Посредник) - позволяет снизить число связей между классами при большом их количестве, выделяя один класс, знающий все о методах других классов (how and which objects interact with each other);
- Memento (Хранитель) - сохраняет текущее состояние объекта для дальнейшего восстановления (what private information is stored outside an object, and when);
- Observer (Наблюдатель) - позволяет при зависимости между объектами типа «один ко многим» отслеживать изменения объекта (number of objects that depend on another object; how the dependent objects stay up to date);
- State (Состояние) - позволяет объекту изменять свое поведение за счет изменения внутреннего объекта состояния (states of an object);
- Strategy (Стратегия) - задает набор алгоритмов с возможностью выбора одного из классов для выполнения конкретной задачи во время создания объекта (an algorithm);
- Template Method (Шаблонный Метод) - создает родительский класс, использующий несколько методов, реализация которых возложена на производные классы (steps of an algorithm);
- Visitor (Посетитель) - представляет операцию в одном или нескольких связанных классах некоторой структуры, которую вызывает специфичный для каждого такого класса метод в другом классе (operations that can be applied to object(s) without changing their class(es));
- Interpreter (Интерпретатор) - для определенного способа представления информации определяет правила (grammar and interpretation of a language).
#interview
Назовите поведенческие шаблоны и кратко опишите их.
Ответ:
Поведенческие шаблоны характеризуют способы взаимодействия классов или объектов между собой.
К поведенческим шаблонам относятся:
- Chain of Responsibility (Цепочка Обязанностей) - организует независимую от объекта-отправителя цепочку не знающих возможностей друг друга объектов-получателей, которые передают запрос друг другу (object that can fulfill a request);
- Command (Команда) - используется для определения по некоторому признаку объекта конкретного класса, которому будет передан запрос для обработки (when and how a request is fulfilled);
- Iterator (Итератор) - позволяет последовательно обойти все элементы коллекции или другого составного объекта, не зная деталей внутреннего представления данных (how an aggregate's elements are accessed, traversed);
- Mediator (Посредник) - позволяет снизить число связей между классами при большом их количестве, выделяя один класс, знающий все о методах других классов (how and which objects interact with each other);
- Memento (Хранитель) - сохраняет текущее состояние объекта для дальнейшего восстановления (what private information is stored outside an object, and when);
- Observer (Наблюдатель) - позволяет при зависимости между объектами типа «один ко многим» отслеживать изменения объекта (number of objects that depend on another object; how the dependent objects stay up to date);
- State (Состояние) - позволяет объекту изменять свое поведение за счет изменения внутреннего объекта состояния (states of an object);
- Strategy (Стратегия) - задает набор алгоритмов с возможностью выбора одного из классов для выполнения конкретной задачи во время создания объекта (an algorithm);
- Template Method (Шаблонный Метод) - создает родительский класс, использующий несколько методов, реализация которых возложена на производные классы (steps of an algorithm);
- Visitor (Посетитель) - представляет операцию в одном или нескольких связанных классах некоторой структуры, которую вызывает специфичный для каждого такого класса метод в другом классе (operations that can be applied to object(s) without changing their class(es));
- Interpreter (Интерпретатор) - для определенного способа представления информации определяет правила (grammar and interpretation of a language).
#interview
👍1
  Вопрос с собеседования
Для чего нужен Decorator паттерн в Javascript? Приведите пример.
Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!
#interview
Для чего нужен Decorator паттерн в Javascript? Приведите пример.
Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!
#interview
🥱3
  Вопрос с собеседования
В чем разница между классом и структурой?
Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!
#interview
  В чем разница между классом и структурой?
Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!
#interview
Вопрос с собеседования
В чем разница между классом и структурой?
Ответ:
Класс – это определенный пользователем чертеж, на основе которого создаются объекты. Он состоит из методов (набор инструкций), которые выполняются над объектами.
Структура – это определенная пользователем коллекция переменных. Структуры также являются различными типами данных.
#interview
В чем разница между классом и структурой?
Ответ:
Класс – это определенный пользователем чертеж, на основе которого создаются объекты. Он состоит из методов (набор инструкций), которые выполняются над объектами.
Структура – это определенная пользователем коллекция переменных. Структуры также являются различными типами данных.
#interview
🤮5
  Вопрос с собеседования
Для чего нужен Decorator паттерн в Javascript? Приведите пример.
Ответ:
Javascript предоставляет удивительно гибкие возможности по работе с функциями: их можно передавать, в них можно записывать данные как в объекты, у них есть свои встроенные методы.
Шаблон декоратора динамически расширяет (украшает) поведение объекта. Возможность добавления нового поведения во время выполнения достигается с помощью объекта Decorator, который «оборачивается» вокруг исходного объекта. Несколько декораторов могут добавлять или переопределять функциональность исходного объекта.
Примером декоратора является управление безопасностью, где бизнес-объектам предоставляется дополнительный доступ к привилегированной информации в зависимости от привилегий аутентифицированного пользователя. Например, менеджер по персоналу приступает к работе с объектом сотрудника, к которому добавлена (то есть украшена) запись о зарплате сотрудника, чтобы можно было просматривать информацию о зарплате.
Декораторы обеспечивают гибкость статически типизированных языков, позволяя вносить изменения во время выполнения, а не наследование, которое происходит во время компиляции. Однако JavaScript - это динамический язык, и возможность расширения объекта во время выполнения встроена в сам язык.
Пример использования декоратора в JavaScript:
Для чего нужен 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
Вопрос с собеседования
Зачем нужна инкапсуляция?
Ответ:
Инкапсуляция позволяет скрыть данные и обернуть данные и код, который работает над ними, в единое целое.
#interview
Зачем нужна инкапсуляция?
Ответ:
Инкапсуляция позволяет скрыть данные и обернуть данные и код, который работает над ними, в единое целое.
#interview
❤1
  Вопрос с собеседования
Что такое виртуальные функции?
Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!
#interview
  Что такое виртуальные функции?
Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!
#interview
Вопрос с собеседования
Что такое виртуальные функции?
Ответ:
Виртуальные функции – это часть функций, которые присутствуют в родительском классе, и они переопределяются подклассом.
Эти функции помогают достичь полиморфизма во время выполнения. 
#interview
Что такое виртуальные функции?
Ответ:
Эти функции помогают достичь полиморфизма во время выполнения.
#interview
👍2🙈2
  Вопрос с собеседования
Что такое Dependency inversion principle?
Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!
#interview
  Что такое Dependency inversion principle?
Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!
#interview
Вопрос с собеседования
Что такое Dependency inversion principle?
Ответ:
Dependency inversion principle - принцип инверсии зависимостей.
Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
#interview
Что такое Dependency inversion principle?
Ответ:
Dependency inversion principle - принцип инверсии зависимостей.
Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
#interview
👎3👍1😁1