22 лучших шаблона Java-дизайна: вопросы для собеседования & Ответы

Anonim

Скачать PDF

1) Объясните, что такое шаблон дизайна Java?

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

2) Объясните, что такое шаблоны творческого проектирования и шаблон Factory?

Шаблон проектирования создания : этот шаблон используется для определения и описания того, как объекты создаются во время создания экземпляра класса.

Фабричный шаблон : Фабричный шаблон используется для создания объекта без раскрытия клиенту логики создания и ссылки на вновь созданный объект с использованием общего интерфейса.

3) Какой шаблон проектирования используется для последовательного доступа к элементам объекта коллекции?

Шаблон итератора используется для получения последовательного доступа к элементам объекта коллекции.

4) Когда используется шаблон локатора услуг?

Когда мы хотим найти различные службы с помощью JNDI, мы используем шаблон локатора служб.

5) Упомяните, сколькими способами вы можете создать одноэлементный шаблон?

Есть два известных способа создания отдельных объектов.

  • Ленивая загрузка
  • Нетерпеливая загрузка

6) Укажите, какой шаблон используется, когда нам нужно отделить абстракцию от ее реализации?

Когда мы хотим отделить абстракцию от ее реализации, чтобы два могли различаться независимо, мы используем шаблон моста.

7) Укажите, какой шаблон проектирования будет полезен для добавления новых функций к существующему объекту?

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

8) Объясните, как можно создать класс Singleton в Java?

Это двухэтапный процесс,

  • Сначала сделайте конструктор закрытым, чтобы нельзя было использовать новый оператор для создания экземпляра класса.
  • Верните объект объекта, если не null, в противном случае создайте объект и верните его через метод.

9) Можно ли написать потокобезопасный синглтон на Java?

Чтобы написать потокобезопасный синглтон в Java, существует несколько способов, например, с помощью статического экземпляра синглтона, инициализированного во время загрузки класса, путем написания синглтона с использованием блокировки с двойной проверкой. Java Enum - самый простой способ создать потокобезопасный синглтон.

10) Упомяните, как следует описать шаблон проектирования?

Чтобы описать шаблон проектирования, необходимо позаботиться о следующих вещах.

  • Название и классификация паттерна
  • Проблема и решение
  • Последствия: необходимо также рассмотреть варианты, зависящие от языка и альтернативы.
  • Знать использование: определить способы использования в реальных системах и их эффективность

11) Упомяните, почему доступ к нестатической переменной из статического метода в Java запрещен?

Вы не можете получить доступ к нестатическим данным из статического контекста, потому что нестатические переменные связаны с конкретным экземпляром объекта, а статические не связаны ни с одним экземпляром.

12) Укажите, какой шаблон полезен, когда нужно передать данные с несколькими атрибутами за один раз от клиента к серверу?

Шаблон передачи объекта полезен, когда нужно передать данные с несколькими атрибутами за один раз от клиента к серверу.

13) Назовите некоторые из сущностей паттерна DAO?

Некоторые из сущностей DAO включают:

  • Конкретный класс объекта доступа к данным
  • Интерфейс объекта доступа к данным
  • Объект модели или объект значения

14) Упомяните, когда можно использовать шаблон перехвата?

Шаблон перехвата используется, когда вам нужно выполнить некоторую предварительную или постобработку с запросом или ответом приложения.

15) Упомяните, когда использовать заводской шаблон?

Можно использовать заводской узор,

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

16) Объясните в шаблоне singleton, лучше ли синхронизировать весь метод getinstance () или достаточно только критического раздела? Какой предпочтительнее?

Синхронизация всего метода getinstance () является дорогостоящей и требуется только во время инициализации экземпляра синглтона, чтобы остановить создание другого экземпляра синглтона. Поэтому лучше синхронизировать только критическую часть, а не весь метод.

17) Упомяните, сколькими способами вы можете написать одноэлементный класс на Java?

Одноэлементный класс на Java можно написать четырьмя способами

  • Синглтон с общедоступным статическим конечным полем, инициализированным во время загрузки класса
  • Синглтон, созданный статическим вложенным классом, также называемый шаблоном держателя одиночного элемента
  • Синглтон путем синхронизации метода get instance ()
  • Начиная с Java 5, используя Enums

18) Объясните, как можно предотвратить создание еще одного экземпляра синглтона с помощью метода clone ()?

Предпочтительный способ предотвратить создание другого экземпляра синглтона - это не реализовывать интерфейс Cloneable, и если вы действительно создаете исключение из метода clone (), «чтобы не создавать клон класса синглтона».

19) Упомяните, в чем разница между «броском» и «броском»?

Ключевое слово «бросок» используется для явного генерирования исключения, в то время как «бросок» используется для обработки проверенных исключений для повторного оповещения компилятора о том, что исключения обрабатываются. Броски необходимо использовать в определении метода, а также при вызове метода, который вызывает проверенные исключения.

20) Укажите, какие классы в JDK используют шаблон singleton?

Классы Java.lang.Runtime используют шаблон singleton в JDK.

21) Укажите, в чем заключается ограничение использования одноэлементного шаблона?

Шаблон singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему. Но в то же время это становится его ограничением, так как для большинства классов в приложении вам нужно будет создать несколько экземпляров.

22) Упомяните, в чем разница между VO и JDO?

Разница между JDO и VO заключается в том, что JDO - это постоянная технология, которая конкурирует с entity-компонентами при разработке корпоративных приложений. Это позволяет вам создавать POJO (простые старые объекты Java) и сохранять их в базе данных.

В то время как VO означает объекты значений, представляет собой абстрактный шаблон проектирования, используемый в сочетании с entity-компонентами, jdbc и, возможно, даже JDO для преодоления часто встречающихся проблем изоляции и транзакций в корпоративных приложениях.