Введение в дизайн шаблона интервью вопросы и ответы

Шаблоны проектирования - это хорошо описанное решение наиболее часто встречающихся проблем, возникающих при разработке программного обеспечения. Шаблон проектирования представляет собой лучшие практики, разработанные опытными разработчиками программного обеспечения за определенный период времени. Они способствуют многократному использованию, что приводит к более надежному и поддерживаемому коду.
Дизайн Шаблоны были впервые описаны в книге «Язык шаблонов» архитектора Кристофера Александра. Позже они были описаны в Design Patterns: Элементы многоразового объектно-ориентированного программного обеспечения, написанного четырьмя авторами (Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес), также именуемые «Банда четырех».
Шаблоны проектирования можно разделить на три основные категории:
• Творческие паттерны
• Поведенческие образцы
• Функциональные паттерны

Так что пока готовлюсь к собеседованию в дизайне. Я уверен, что вы хотите знать наиболее распространенные вопросы и ответы на вопросы о шаблонах дизайна 2019 года, которые помогут вам легко взломать интервью с шаблонами дизайна. Ниже приведен список лучших вопросов и ответов на вопросы по шаблонам проектирования.

Ниже приведены некоторые из наиболее часто задаваемых вопросов об образцах дизайна 2019 года:

1.Что такое шаблон Singleton в Java?

Ответ:
Шаблон Singleton - это шаблон создания, который позволяет создавать только один экземпляр класса, который будет доступен всему приложению. Основным преимуществом шаблона проектирования Singleton является его экономия памяти, поскольку один экземпляр используется снова и снова; нет необходимости создавать новый объект при каждом запросе. Например, в нашем приложении мы можем использовать одно соединение с базой данных, совместно используемое несколькими объектами, вместо создания соединения с базой данных для каждого запроса.

2. Каковы недостатки использования шаблона Singleton Design?

Ответ:
Основными недостатками использования шаблона Singleton Design являются:
а) Синглтон вызывает тесную связь кода. Одноэлементный объект представлен глобально и доступен для всего приложения. Таким образом, классы, использующие этот объект, становятся тесно связанными; любое изменение в глобальном объекте повлияет на все другие классы, использующие его.
б) они скрывают зависимости вместо того, чтобы разоблачать их.
в) Singleton Pattern не поддерживает наследование.
г) принцип Синглтона может быть нарушен такими методами, как клонирование. Если приложение работает на нескольких JVM, то в этом случае Singleton может быть поврежден.

3. Какой шаблон дизайна вы будете использовать для создания сложного объекта?

Ответ:
Шаблон проектирования Builder используется для построения сложного объекта. Он предназначен для решения проблем с заводской и абстрактной схемой проектирования.

4. Зачем использовать фабричный класс для создания экземпляра класса, когда мы можем использовать оператор new?

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

5.В чем разница между фабрикой и абстрактной фабричной конструкцией?

Ответ:
И фабрика, и абстрактная фабрика являются образцами творческого дизайна. Основное различие между ними состоит в том, что фабричный шаблон создает объект посредством наследования и производит только один продукт. С другой стороны, абстрактный фабричный шаблон создает объект посредством композиции и производит семейства продуктов.

6. Что такое шаблон проектирования наблюдателя в Java?

Ответ:
Шаблон проектирования наблюдателя - это один из шаблонов проектирования поведения, который определяет зависимости «один ко многим» между объектами и полезен, когда нас интересует состояние объекта, и мы хотим получать уведомления при любых изменениях состояния объекта. В шаблоне проектирования Observer, когда один объект меняет свое состояние, все его зависимые объекты автоматически уведомляются, объект называется Subject, а зависимые объекты называются Observers. Java предоставляет библиотеки для реализации шаблона проектирования Observer с использованием класса java.util.Observable и интерфейса java.util.Observer.

7. Разница между стратегией и шаблоном проектирования состояний в Java?

Ответ:
Обе стратегии, а также шаблон проектирования состояния похожи на практике, но имеют различную реализацию, и вот некоторые из основных различий между этими двумя:
Шаблон проектирования a.Strategy определяет набор алгоритмов для выполнения определенного поведения, тогда как шаблон проектирования State позволяет объекту изменять свое поведение при изменении внутреннего состояния.
Шаблон проектирования b.Strategy не позволяет нам сохранять ссылку на объект контекста, тогда как шаблон проектирования состояния хранит ссылку на объект контекста, который их содержит.
в. В шаблоне разработки стратегии клиент осведомлен о стратегии, выбранной для реализации, тогда как в шаблоне разработки состояний клиент не решает, какое состояние следует выбрать для реализации.
Паттерн d.Strategy имеет дело с тем, КАК объект выполняет определенную задачу, тогда как паттерн разработки состояний имеет дело с тем, что является объектом.
e. В шаблоне разработки стратегии нет отношений преемник / предшественник, тогда как в шаблоне разработки состояний состояния связаны друг с другом как преемник и предшественник.

8. Что такое нулевой объектный паттерн?

Ответ:
Шаблон нулевого объекта - это шаблон проектирования, в котором нулевой объект заменяет проверку NULL для переменной экземпляра. Вместо того, чтобы ставить проверку на нулевое значение, Null Object отражает отношение бездействия. Он также может использоваться для обеспечения поведения по умолчанию в случае, если данные недоступны.

9. Приведите пример шаблона оформления декоратора?

Ответ:
Шаблон декоратора, также известный как структурный шаблон, используется для добавления дополнительных функций к конкретному объекту во время выполнения. Он оборачивает оригинальный объект через объект декоратора. Например, когда вы покупаете гамбургер, вы можете настроить его, добавив дополнительные начинки и соусы, теперь стоимость этих предметов должна быть добавлена ​​к окончательной цене. Настройка будет отличаться от клиента к клиенту и предложение от магазина. Создание разных классов бургера с разными начинками приведет к созданию множества классов. Декоратор решает эту проблему, расширяя функциональность одного класса Burger во время выполнения на основе запроса клиента.

10. В чем преимущество использования шаблона проектирования прототипа по сравнению с созданием экземпляра с использованием нового ключевого слова?

Ответ:
Иногда создание объектов имеет большой вес и требует много ресурсов, а создание нового экземпляра влияет на производительность. В таких случаях используется шаблон дизайна прототипа, который относится к созданию дублирующих объектов. В шаблоне разработки прототипа, если подобный объект уже присутствует, клонирование выполняется с учетом производительности.

Рекомендуемая статья

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

  1. 25 самых важных вопросов по информатике
  2. Знайте Топ 10 полезных Agile Интервью Вопросы и ответы
  3. Топ-5 самых ценных вопросов для интервью с наукой о данных
  4. Удивительные 20 советов, чтобы закрепить ваше следующее собеседование (идеи)