Най-добрите 22 модела за дизайн на Java Въпроси за интервю & Отговори

Anonim

Изтеглете PDF

1) Обяснете какво е Java Design Pattern?

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

2) Обяснете какво са креативни дизайнерски модели и фабрични модели?

Шаблон за творчески дизайн : Този модел се използва за дефиниране и описание на начина, по който се създават обекти по време на създаване на клас.

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

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) Обяснете в единичен модел дали е по-добре да направите целия метод getinstance () синхронизиран или е достатъчен само критичен раздел? Коя е за предпочитане?

Синхронизирането на целия метод getinstance () е скъпо и е необходимо само по време на инициализацията на единичен екземпляр, за да се спре създаването на друг екземпляр на Singleton. Затова е по-добре да синхронизирате само критичната секция, а не целия метод.

17) Споменете по колко начина можете да пишете единичен клас в Java?

Човек може да пише единичен клас в Java по четири начина

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

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

Предпочитаният начин да се предотврати създаването на друг екземпляр на сингълтон е чрез неприлагане на Cloneable интерфейс и ако просто изхвърлите изключение от метод clone () „да не създавате клонинг от клас singleton“.

19) Споменете каква е разликата между „хвърляне“ и „хвърляния“?

Ключовата дума „Хвърляне“ се използва за изрично изхвърляне като изключение, докато „Хвърляния“ се използва за обработка на проверени изключения за повторно намекване на компилатора, че се обработват изключения. Хвърлянията трябва да се използват в дефиницията на метода, а също и при извикване на метода, който създава проверени изключения.

20) Споменете кои класове в JDK използват единичен модел?

Java.lang.Runtime класовете използват единичен модел в JDK.

21) Споменете какво е ограничението при използването на единичен модел?

Единичният модел гарантира, че даден клас има само един екземпляр и осигурява глобална точка за достъп до него. Но в същото време това се превръща в неговото ограничение, тъй като повечето класове в приложението ще трябва да създадете множество екземпляри.

22) Споменете каква е разликата между VO и JDO?

Разликата между JDO и VO е, че JDO е постоянна технология, която се конкурира с обектни обекти при разработването на корпоративни приложения. Тя ви позволява да създавате POJO (обикновени стари Java обекти) и да ги поддържате в базата данни.

Докато VO означава стойностни обекти, представлява абстрактен модел на дизайн, използван заедно с обектни компоненти, jdbc и вероятно дори JDO за преодоляване на често срещани проблеми с изолацията и транзакциите в корпоративни приложения.