Những mẫu thiết kế nào được sử dụng trong Spring framework?
Câu trả lời:
Có rất nhiều mẫu thiết kế khác nhau được sử dụng, nhưng có một số mẫu rõ ràng:
Singleton - bean được định nghĩa trong các tệp cấu hình mùa xuân là các tệp đơn theo mặc định.
Phương pháp mẫu - được sử dụng rộng rãi để xử lý mã lặp lại soạn sẵn (chẳng hạn như đóng các kết nối sạch sẽ, v.v.). Ví dụ JdbcTemplate , JmsTemplate , JpaTemplate .
Cập nhật các nhận xét sau: Đối với MVC, bạn có thể muốn đọc Tham khảo MVC
Một số mẫu rõ ràng được sử dụng trong MVC:
Bộ điều khiển Chế độ xem Mô hình :-). Ưu điểm của Spring MVC là bộ điều khiển của bạn là POJO thay vì là các servlet. Điều này giúp kiểm tra bộ điều khiển dễ dàng hơn. Một điều cần lưu ý là bộ điều khiển chỉ được yêu cầu trả về tên chế độ xem hợp lý và lựa chọn chế độ xem được để lại cho một ViewResolver riêng biệt . Điều này giúp bạn dễ dàng sử dụng lại bộ điều khiển cho các công nghệ chế độ xem khác nhau.
Bộ điều khiển phía trước . Spring cung cấp DispatcherServlet để đảm bảo một yêu cầu đến được gửi đến bộ điều khiển của bạn.
View Helper - Spring có một số thẻ JSP tùy chỉnh và macro vận tốc, để hỗ trợ tách mã khỏi bản trình bày trong các dạng xem.
Foo
và bạn truy xuất phiên bản của Foo
mỗi ngữ cảnh, bạn sẽ nhận được hai tham chiếu đối tượng khác nhau. Thay vào đó, mẫu thiết kế được áp dụng ở đây là hạng ruồi
Điều DI thực sự là một số loại mô hình chiến lược. Bất cứ khi nào bạn muốn một số logic / thực thi có thể trao đổi, bạn thường tìm một giao diện và một phương thức setter thích hợp trên lớp máy chủ để thực hiện tùy chỉnh giao diện đó.
Service Locator Pattern - ServiceLocatorFactoryBean lưu giữ thông tin của tất cả các bean trong ngữ cảnh. Khi mã khách hàng yêu cầu một dịch vụ (bean) bằng cách sử dụng tên, nó chỉ cần định vị bean đó trong ngữ cảnh và trả về nó. Mã máy khách không cần phải viết mã liên quan đến mùa xuân để xác định vị trí của một bean.
Factory Method pattern: BeanFactory để tạo thể hiện của một đối tượng Singleton: kiểu thể hiện có thể là singleton cho một ngữ cảnh Nguyên mẫu: kiểu thể hiện có thể là nguyên mẫu. Builder pattern: bạn cũng có thể xác định một phương thức trong một lớp, người sẽ chịu trách nhiệm tạo phiên bản phức tạp.
Spring container tạo ra các đối tượng bean tùy thuộc vào phạm vi bean (singleton, nguyên mẫu, v.v.). Vì vậy, điều này trông giống như thực hiện mô hình Nhà máy trừu tượng . Trong quá trình triển khai nội bộ của Spring, tôi chắc chắn rằng mỗi phạm vi phải được gắn với loại nhà máy cụ thể.