Найпопулярніші 22 шаблони дизайну Java Питання для співбесіди & Відповіді

Anonim

Завантажте PDF

1) Поясніть, що таке шаблон дизайну Java?

Шаблон проектування - це мовна стратегія для вирішення загальної об'єктно-орієнтованої проблеми проектування. Він описує, як структурувати класи, щоб задовольнити задану вимогу.

2) Поясніть, що таке креативні шаблони дизайну та фабричний шаблон?

Творчий шаблон дизайну : Цей шаблон використовується для визначення та опису того, як об’єкти створюються під час створення класу.

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

3) Який шаблон дизайну використовується для отримання послідовного доступу до елементів об’єкта колекції?

Шаблон ітератора використовується, щоб отримати спосіб послідовного доступу до елементів об'єкта колекції.

4) Коли використовується шаблон локатора служб?

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

5) Згадайте, скільки способів ви можете створити одиночний шаблон?

Існують два відомі способи створення окремих об’єктів

  • Ліниве завантаження
  • Прагне завантаження

6) Згадайте, який шаблон використовується, коли нам потрібно відокремити абстракцію від її реалізації?

Коли ми хочемо відокремити абстракцію від її реалізації, щоб два могли змінюватися незалежно, ми використовуємо шаблон мосту.

7) Згадайте, який шаблон дизайну буде корисним для додавання нових функціональних можливостей до існуючого об’єкта?

Шаблон декоратора дозволяє користувачеві додати нову функціональність до існуючого об'єкта без зміни його структури.

8) Поясніть, як можна створити клас Singleton на Java?

Це двоступеневий процес,

  • Спочатку зробіть конструктор приватним, щоб новий оператор не міг бути використаний для створення екземпляра класу
  • Поверніть об'єкт об'єкта, якщо не має значення null, інакше створіть об'єкт і поверніть його за допомогою методу.

9) Чи можна написати Java-безпечний синглтон на Java?

Для написання безпечного для потоку одиночного в Java існує кілька способів, наприклад, за допомогою статичного екземпляра одиночного елемента, ініціалізованого під час завантаження класу, шляхом написання одиночного з використанням подвійної перевірки блокування. Java Enum - це найпростіший спосіб створити безпечний для потоків синглтон.

10) Згадайте, як слід описувати шаблон дизайну?

Щоб описати шаблон дизайну, слід подбати про такі речі

  • Назва шаблону та класифікація
  • Проблема та рішення
  • Наслідки: Варто також звернути увагу на варіанти та мовні альтернативи
  • Знайте використання: Визначте використання реальних систем та його ефективність

11) Згадайте, чому доступ до нестатичної змінної заборонений із статичного методу в Java?

Ви не можете отримати доступ до нестатичних даних із статичного контексту, оскільки нестатичні змінні пов’язані з певним екземпляром об’єкта, тоді як статичні не пов’язані з жодним екземпляром.

12) Згадайте, який шаблон є корисним, коли потрібно передавати дані з кількома атрибутами одним пострілом від клієнта до сервера?

Передача шаблону об’єкта корисна, коли потрібно передавати дані з кількома атрибутами одним пострілом від клієнта до сервера.

13) Назвіть деякі сутності шаблону DAO?

Деякі сутності DAO включають,

  • Конкретний клас об’єкта доступу до даних
  • Інтерфейс об'єкта доступу до даних
  • Модельний об'єкт або об'єкт значення

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

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

15) Згадайте, коли використовувати заводський шаблон?

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

  • Коли клас не знає, який клас об’єктів потрібно створити
  • Коли клас вказує свої підкласи, щоб вказати, які об'єкти створювати
  • У мові програмування ви можете використовувати заводський шаблон, де вам потрібно створити об'єкт будь-якого з підкласів залежно від даних

16) Поясніть одностороннім шаблоном, чи краще зробити весь метод getinstance () синхронізованим, чи достатньо лише критичного розділу? Який з них є кращим?

Синхронізація цілого методу getinstance () є дорогою і потрібна лише під час ініціалізації на екземплярі singleton, щоб припинити створення іншого екземпляра Singleton. Тому краще синхронізувати лише критичний розділ, а не весь метод.

17) Згадайте, скільки способів ви можете писати одиночний клас на Java?

Можна написати однокласний клас на Java чотирма способами

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

18) Поясніть, як можна запобігти створенню чергового екземпляра синглтона за допомогою методу clone ()?

Кращий спосіб запобігти створенню іншого екземпляра синглтона - це не реалізація інтерфейсу Cloneable, і якщо ви просто викинете виняток з методу clone (), “не створювати клон класу singleton”.

19) Згадайте, в чому різниця між "кидок" і "кидки"?

Ключове слово “Throw” використовується для явного викидання як виняток, тоді як “Throw” використовується для обробки перевірених винятків для повторного наведення компілятора, що обробляються винятки. Викиди потрібно використовувати у визначенні методу, а також під час виклику методу, який викликає перевірені винятки.

20) Згадайте, в яких класах у JDK використовується одиночний шаблон?

Класи Java.lang.Runtime використовує одиночний шаблон у JDK.

21) Згадайте, у чому полягає обмеження використання одиночного візерунка?

Шаблон синглтона гарантує, що клас має лише один екземпляр і забезпечує глобальну точку доступу до нього. Але водночас це стає його обмеженням, оскільки для більшості класів у програмі вам потрібно буде створити кілька екземплярів.

22) Згадайте, в чому різниця між VO та JDO?

Різниця між JDO і VO полягає в тому, що JDO - це стійка технологія, яка конкурує з суттєвими компонентами при розробці корпоративних додатків. Це дозволяє створювати POJO (звичайні старі об'єкти Java) і зберігати їх у базі даних.

Хоча VO розшифровується як значення об'єктів, являє собою абстрактний шаблон дизайну, що використовується разом із компонентами сутності, jdbc і, можливо, навіть JDO для подолання загальноприйнятих проблем ізоляції та транзакцій у корпоративних програмах.