Layered Architecture and Spring IoC Flashcards
Why we want to split our applications into layers?
За по-добра организация, лесна поддръжка, разделение на отговорностите и възможност за промяна на един слой, без да засяга другите.
What is to role of the presentation layer?
Обработва взаимодействието с потребителя и показва данните на подходящ начин (UI).
Where all core application logic belongs?
В бизнес слоя (business layer), който съдържа правилата и логиката за работа на приложението.
What are the benefits of structuring the applications into layers?
- Разделение на отговорностите
- Лесна поддръжка и тестване
- Гъвкавост и повторна употреба на код
What is Dependency Inversion?
Принцип, при който високите нива на кода не трябва да зависят от ниските, а и двете трябва да зависят от абстракции.
What is Inversion of Control?
Процес, при който обектите не контролират създаването на своите зависимости, а този контрол се дава на друг механизъм (напр. Spring контейнер).
What is Dependency Injection?
Техника, при която зависимостите на обект се предоставят отвън, вместо обектът сам да ги създава.
How many ways are there to inject a dependency?
- Чрез конструктор (constructor injection)
- Чрез setter метод (setter injection)
- Чрез полета (field injection)
Explain the difference between Dependency Inversion, Inversion of Control & Dependency Injection.
- Dependency Inversion е принцип, който казва, че високо ниво на кода трябва да зависи от абстракции, не от конкретни реализации.
- Inversion of Control е метод за прехвърляне на контрола на зависимостите от обектите към контейнер или рамка.
- Dependency Injection е конкретна техника за реализиране на Inversion of Control чрез предоставяне на зависимости на обектите отвън.
What are the benefits of DI?
- Лесно тестване на отделни компоненти
- Намаляване на твърдите зависимости между обектите
- По-гъвкав и модулен код