Які шаблони дизайну використовуються в рамках Spring?
Відповіді:
Використовується безліч різних моделей дизайну, але є кілька очевидних:
Singleton - компоненти, визначені у весняних конфігураційних файлах, за замовчуванням є однотонними.
Шаблонний метод - широко використовується для роботи з повторюваним кодом шаблону (наприклад, для чистого закриття з'єднань тощо). Наприклад, JdbcTemplate , JmsTemplate , JpaTemplate .
Оновіть такі коментарі: Для MVC ви можете прочитати Довідник MVC
Деякі очевидні закономірності, що використовуються в MVC:
Контролер перегляду моделі :-). Перевага Spring MVC полягає в тому, що ваші контролери є POJO, а не сервлетами. Це полегшує тестування контролерів. Зауважимо одне, що контролер повинен повертати лише логічне ім’я подання, а вибір подання залишається в окремому ViewResolver . Це полегшує повторне використання контролерів для різних технологій перегляду.
Передній контролер . Spring надає DispatcherServlet для забезпечення надсилання вхідного запиту вашим контролерам.
View Helper - Spring має ряд користувацьких тегів JSP та макроси швидкості, щоб допомогти відокремити код від презентації у поданнях.
Foo
і ви отримуєте екземпляр Foo
кожного контексту, ви отримаєте два різних посилання на об’єкт. Замість цього шаблон проектування застосовується тут мухи
Річ у дійсності насправді є якоюсь схемою стратегії. Кожного разу, коли ви хочете бути логічними / реалізованими, ви зазвичай знаходите інтерфейс та відповідний метод сетеру в хост-класі, щоб підключити вашу власну реалізацію цього інтерфейсу.
Шаблон локатора послуг - ServiceLocatorFactoryBean зберігає інформацію про всі компоненти в контексті. Коли клієнтський код запитує послугу (компонент) із використанням імені, він просто знаходить цей компонент у контексті та повертає його. Клієнтському коду не потрібно писати код, пов’язаний з пружиною, щоб знайти компонент.
Шаблон фабричного методу: BeanFactory для створення екземпляра об'єкта Singleton: тип екземпляра може бути одиночним для контексту Prototype: тип екземпляра може бути прототипом. Шаблон конструктора: ви також можете визначити метод у класі, який буде відповідати за створення складного екземпляра.
Spring-контейнер генерує об'єкти bean в залежності від сфери дії (singleton, prototype тощо). Отже, це виглядає як реалізація шаблону Abstract Factory . У внутрішньому впровадженні Spring, я впевнений, кожен обсяг повинен бути прив’язаний до певного класу заводських видів.