Core Design Patterns được chia thành ba loại chính của mẫu thiết kế,như sau: + Creational Design Pattern: các mẫu trong danh mục này cung cấpmột cách để xây dựng các đối tượng khi các nh
Trang 1TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
BÁO CÁO ĐỒ ÁN
ĐỀ TÀI:
TÌM HIỂU LÝ THUYẾT VÀ CÁC MẪU THIẾT KẾ PHẦN MỀM CÓ TRONG SPRING FRAMEWORK
Giảng viên hướng dẫn : Nguyễn Minh Đạo
Trang 21 Quách Diệu Khánh 191102
26 2
3
4
Phan Tấn Thành
Phạm Ngọc Đức
Võ Hữu Giàu
191102 88 191101 57 191101 96
Tên đề tài: Tìm hiểu Spring Framework và các mẫu thiết kế phần mềm có trong spring framework
Thời gian thực hiện: : 01/04/2022 – 20/05/2022
NHẬN XÉT CỦA GIẢNG VIÊN
Trang 3
Nguyễn Minh Đạo
2 Overview of GOF Design Patterns - Core Design Patterns 7
Giới thiệu về sức mạnh của các mẫu Design Patterns 7
3 Consideration of Structural and Behavioral Patterns 18
4 Wiring Beans using the Dependency Injection Pattern 34
Types of dependency injection patterns 34Constructor-based dependency injection 34
Configuring the dependency injection pattern with Spring 36Annotating beans for autowiring Lookup-method injection pattern 36Implementing the Abstract Factory Pattern in Spring 37Implementation of FactoryBean interface in Spring 37
Trang 6LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn chân thành đến Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP.HCM đã tạo điều kiện thuận lợi cho chúng em học tập và hoàn thành đề tài báo cáo này Đặc biệt, chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Nguyễn Minh Đạo đã truyền đạt kiến thức và hướng dẫn chúng em trong quá trình hoàn thành báo cáo.
Nhóm em đã cố gắng vận dụng những kiến thức đã học được trong học kỳ qua để hoàn thành bài báo cáo Nhưng do kiến thức hạn chế và không có nhiều kinh nghiệm thực tiễn nên khó tránh khỏi những thiếu sót trong quá trình nghiên cứu và trình bày Rất kính mong sự góp ý của thầy để bài báo cáo của nhóm em được hoàn thiện hơn.
Một lần nữa, nhóm em xin trân trọng cảm ơn sự quan tâm giúp đỡ của thầy đã giúp
đỡ nhóm em trong quá trình thực hiện bài báo cáo này.
Xin trân trọng cảm ơn!
Trang 72 Overview of GOF Design Patterns - Core
Design Patterns
1 Giới thiệu về sức mạnh của các mẫu Design Patterns
Trên thực tế, cụm từ Design Pattern không liên quan đến bất kỳ ngônngữ lập trình nào và nó cũng không cung cấp các giải pháp cụ thể cho cácvấn đề về ngôn ngữ, là một khái niệm kỹ thuật phần mềm mô tả các giảipháp định kỳ cho các vấn đề phổ biến trong thiết kế phần mềm Các mẫunày cũng đại diện cho các thực tiễn tốt nhất được sử dụng bởi các nhà pháttriển phần mềm có kinh nghiệm
Một mô hình thiết kế có ba đặc điểm chính:
+ Mẫu thiết kế dành riêng cho một kịch bản cụ thể hơn là một nềntảng Vì vậy, bối cảnh của nó là điều kiện xung quanh mà vấn đề tồn tại
Bối cảnh phải được ghi lại trong khuôn mẫu
+ Các mẫu thiết kế đã được phát triển để cung cấp các giải pháp tốtnhất cho một số vấn đề nhất định gặp phải trong quá trình phát triển phầnmềm.Vì vậy, điều này nên được giới hạn bởi bối cảnh mà nó đang đượcxem xét
+ Các mẫu thiết kế là phương thuốc cho các vấn đề đang được xemxét
2 Tổng quan về mô hình thiết kế GOF
Tác giả của cuốn sách có tiêu đề là GOF này là nhóm 4 người gồm
có Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides Vấn đềtrong cuốn sách liên quan đến các yếu tố của phần mềm hướng đối tượng
Trang 8có thể tái sử dụng, đã khởi xướng khái niệm về các mẫu thiết kế trong pháttriển phần mềm.
Các mẫu Gang of Four (GoF) gồm 23 mẫu thiết kế phần mềm cổđiển cung cấp các giải pháp cho các vấn đề phổ biến trong thiết kế phầnmềm Các mẫu này được phân loại thành hai loại chính:
+ Core Design Patterns + J2EE Design Patterns
Core Design Patterns được chia thành ba loại chính của mẫu thiết kế,như sau:
+ Creational Design Pattern: các mẫu trong danh mục này cung cấpmột cách để xây dựng các đối tượng khi các nhà thầu sẽ không phục vụmục đích của bạn Logic sáng tạo của các đối tượng được ẩn Các chươngtrình dựa trên các mẫu này linh hoạt hơn trong việc quyết định tạo đốitượng theo yêu cầu của bạn và các trường hợp sử dụng của bạn cho ứngdụng
+ Structural Design Pattern: các mẫu trong danh mục này liên quanđến thành phần của các lớp hoặc đối tượng Trong ứng dụng doanh nghiệp,
có hai kỹ thuật thường được sử dụng để tái sử dụng chức năng trong các hệthống hướng đối tượng: một là kế thừa lớp và hai là khái niệm thành phầnđối tượng của thừa kế hái niệm thành phần đối tượng của kế thừa được sửdụng để soạn thảo giao diện và xác định các cách để soạn thảo các đốitượng để có được các chức năng mới
+ Behavioral Design Pattern: các mẫu trong danh mục này, đặctrưng cho các cách mà các lớp hoặc đối tượng tương tác và phân phối trách
Trang 9nhiệm Các mẫu thiết kế này đặc biệt quan tâm đến giao tiếp giữa các đốitượng Mô hình thiết kế hành vi được sử dụng để kiểm soát và giảm luồngứng dụng phức tạp trong ứng dụng doanh nghiệp.
Hơn nữa, JEE Design patterns, là loại chính khác của các mẫu thiết
kế Thiết kế ứng dụng có thể được đơn giản hóa vô cùng bằng cách ápdụng các mẫu thiết kế Java EE Các mẫu thiết kế của Java EE đã được ghilại trong các bản thiết kế Java của Sun
Các mẫu thiết kế Java EE này cung cấp các hướng dẫn giải phápđược thử nghiệm theo thời gian và các thực tiễn tốt nhất để tương tác đốitượng trong các lớp khác nhau của ứng dụng Java EE Các mẫu thiết kếnày đặc biệt quan tâm đến các lớp được liệt kê sau:
+ Design pattern at the presentation layer
+ Design pattern at the business layer
+ Design pattern at the integration layer.
3 Creational design patterns
Các mẫu thiết kế sáng tạo( Creational design patterns ) được liên kếtvới phương pháp tạo đối tượng Logic tạo của đối tượng được ẩn cho ngườigọi của đối tượng này
Cách này không phù hợp với một số trường hợp, bởi vì nó là mộtcách tạo mã cứng để tạo ra một đối tượng Nó cũng không phải là một thựctiễn tốt nhất để tạo ra một đối tượng bởi vì đối tượng có thể được thay đổitheo bản chất của chương trình
Trang 10Do đó, mô hình thiết kế sáng tạo( Creational design patterns ) cungcấp sự linh hoạt để tạo ra một đối tượng theo bản chất của chương trình.
Factory design pattern
Xác định một giao diện để tạo một đối tượng, nhưng hãy để các lớpcon quyết định lớp nào sẽ khởi tạo Phương pháp này cho phép một lớp trìhoãn việc khởi tạo cho các lớp con
Theo mẫu thiết kế nhà máy(Factory) này, ta nhận được một đốitượng của một lớp mà không phơi bày logic cơ bản cho máy khách(client)
Nó gán một đối tượng mới cho người gọi bằng cách sử dụng một giao diệnchung hoặc lớp trừu tượng Điều này có nghĩa là mô hình thiết kế che giấulogic thực tế của việc thực hiện một đối tượng, cách tạo nó và lớp nào khởitạo nó Chịu trách nhiệm cho các nhiệm vụ này Mô hình nhà máy(Factory)
là một trong những mẫu thiết kế được sử dụng nhiều nhất trong Java
Những lợi ích của mẫu thiết kế nhà máy(Factory)
Mẫu nhà máy thúc đẩy khớp nối lỏng lẻo giữa các thành phần hoặclớp hợp tác bằng cách sử dụng các giao diện thay vì ràng buộc các lớpdành riêng cho ứng dụng vào mã ứng dụng bằng cách sử dụng mẫu này
Ta có thể thực hiện một đối tượng của các lớp thực hiện giao diện,khi chạy vòng đời đối tượng được quản lý bởi nhà máy được thực hiện bởi
mô hình này
Một số vấn đề chung nên sử dụng mẫu thiết kế này
+ Mẫu này loại bỏ gánh nặng cho nhà phát triển để tạo và quản lýcác đối tượng
Trang 11+ Mẫu này loại bỏ sự kết hợp chặt chẽ giữa các thành phần cộng tác
vì một thành phần không biết các lớp con nào sẽ được yêu cầu để tạo
+ Tránh mã cứng để tạo một đối tượng của lớp
Thực thi mẫu nhà máy(Factory) vào Spring Framework
Spring Framework sử dụng mẫu này để thực thi container(nơi chứađựng tất cả các beans) sử dụng giao diện BeanFactory vàApplicationContext
Spring container hoạt động dựa trên mô hình nhà máy để tạo ra cácbeans cho ứng dụng Spring và cũng như quản lý vòng đời của mỗi beans
BeanFactory và ApplicationContext là các giao diện nhà máy vàSpring có rất nhiều lớp thực hiện Phương pháp GetBean () là phương phápnhà máy cung cấp beans sao cho phù hợp
Abstract factory design pattern
Cung cấp một giao diện để tạo các mối liên hệ giữa các đối tượngliên quan hoặc phụ thuộc mà không cần chỉ định các lớp cụ thể của nó
Đây là một mô hình thiết kế cao cấp so với mô hình thiết kế phươngpháp nhà máy Theo mẫu thiết kế này, bạn chỉ cần xác định một giao diệnhoặc lớp trừu tượng để tạo một đối tượng phụ thuộc có liên quan mà khôngcần chỉ định lớp con cụ thể của nó
Trong mô hình nhà máy trừu tượng, một giao diện chịu trách nhiệmtạo ra một nhà máy gồm các đối tượng liên quan mà không chỉ định rõ ràngcác lớp của chúng Mỗi nhà máy được tạo ra có thể cung cấp cho các đốitượng theo mẫu nhà máy
Trang 12Những lợi ích của mô hình nhà máy trừu tượng(Abstract factory)
+ Cung cấp khớp nối lỏng lẻo giữa các thành phần liên quan Nócũng cách ly mã máy khách(client) với các lớp cụ thể
+ Mô hình thiết kế này là một thiết kế cấp cao hơn mô hình nhà máy
+ Mẫu này cung cấp tính nhất quán tốt hơn trong thời gian xây dựngcủa các đối tượng trên toàn ứng dụng
+ Mô hình này dễ dàng hoán đổi các thành phần liên quan
Một số vấn đề chung nên sử dụng mẫu thiết kế này(Abstract factory)
Khi bạn thiết kế một mẫu nhà máy để tạo đối tượng trong ứng dụngcủa bạn, có những lúc bạn muốn một tập hợp các đối tượng liên quan cụthể được tạo với các ràng buộc nhất định và áp dụng logic mong muốn trêncác đối tượng liên quan trong ứng dụng của bạn Bạn có thể đạt được thiết
kế này bằng cách tạo một nhà máy khác bên trong nhà máy cho một bộ cácđối tượng liên quan và áp dụng các ràng buộc cần thiết Bạn cũng có thểlập trình logic cho một tập hợp các đối tượng liên quan
Khi bạn muốn tùy chỉnh logic khởi tạo của các đối tượng liên quan,thì bạn có thể sử dụng mẫu thiết kế này
Thực thi mẫu nhà máy trừu tượng(Abstract Factory) vào Spring Framework
Trong Spring Framework, giao diện FactoryBean dựa trên mô hìnhthiết kế Abstract Factory, Spring cung cấp nhiều phương thức thực thi giaodiện này, chẳng hạn như là ProxyFactoryBean, Jndi Factory Bean,
Trang 13LocalContainerEntityManagerFactoryBean, và một số khác
Một FactoryBean cũng hữu ích để giúp xây dựng đối tượng Spring
mà bản thân nó không dễ dàng tự xây dựng được.Thường thì điều nàyđược sử dụng để xây dựng các đối tượng phức tạp có nhiều phụ thuộc Nócũng có thể được sử dụng khi bản thân logic xây dựng rất biến động và phụthuộc vào cấu hình
Singleton design pattern
Đảm bảo một lớp chỉ có một trường hợp và cung cấp một điểm truycập toàn cầu cho nó
Mẫu singleton này là một trong những mẫu thiết kế đơn giản nhấttrong Java.Theo mẫu thiết kế này, lớp cung cấp cùng một đối tượng chomỗi cuộc gọi-nghĩa là nó đang hạn chế việc khởi tạo một lớp cho một đốitượng và cung cấp một điểm truy cập toàn cầu vào lớp đó
Vì vậy, lớp sẽ chịu trách nhiệm tạo một đối tượng và cũng đảm bảorằng chỉ nên tạo một đối tượng cho mỗi cuộc gọi của khách hàng(client)cho đối tượng này
Lớp này không cho phép khởi tạo trực tiếp một đối tượng của lớpnày Nó cho phép có được một thể hiện đối tượng chỉ bằng một phươngthức tĩnh được tiếp xúc
Điều này rất hữu ích khi chính xác một đối tượng là cần thiết để phốihợp các hành động trên hệ thống Bạn có thể tạo một mẫu duy nhất bằnghai biểu mẫu, như được liệt kê ở đây:
Trang 14+ Early instantiation: Tạo phiên bản vào thời điểm tải.
+ Lazy instantiation: Tạo phiên bản khi được yêu cầu
Những lợi ích của mô hình Singleton
+ Nó cung cấp quyền truy cập bộ điều khiển vào các lớp quan trọng(thường là đối tượng nặng), chẳng hạn như lớp kết nối cho DB và lớpsessionFactory trong Hibernate
+ Nó giúp tiết kiệm hàng đống bộ nhớ
+ Nó là một thiết kế rất hiệu quả cho môi trường đa luồng
+ Nó linh hoạt hơn vì lớp kiểm soát quá trình khởi tạo và lớp có tínhlinh hoạt để thay đổi quá trình khởi tạo
Với mẫu singleton, mỗi luồng có cùng đối tượng kết nối cơ sở dữliệu với cùng một đối tượng cấu hình trên hệ thống Nó chủ yếu được sửdụng trong các ứng dụng đa luồng và cơ sở dữ liệu Nó được sử dụng trongghi nhật ký, lưu trữ, nhóm luồng, cài đặt cấu hình,
Trang 15Thực thi mẫu Singleton vào Spring Framework
Spring Framework cung cấp một phạm vi singleton bean như là mô hìnhsingleton, nó tương tự mẫu singleton, nhưng không giống hẳn singleton trong java.Theo mẫu singleton, một phạm vi bean trong Spring framework có nghĩa là một beanduy nhất trên mỗi container và mỗi bean Nếu bạn xác định một bean cho một lớp cụthể trong một Spring container, thì sẽ tạo một và chỉ một thể hiện của lớp được xácđịnh bởi định nghĩa bean đó
Prototype design pattern
Chỉ định loại đối tượng để tạo bằng cách sử dụng một thể hiệnnguyên mẫu và tạo các đối tượng mới bằng cách sao chép nguyên mẫu này
Mẫu này được sử dụng để tạo các đối tượng bằng cách sử dụngphương thức nhân bản của các đối tượng Nó được xác định bởi một ví dụnguyên mẫu Trong ứng dụng doanh nghiệp, việc tạo đối tượng là tốn kém
về mặt tạo và khởi tạo các thuộc tính ban đầu của các đối tượng Nếu mộtloại đối tượng như vậy đã có trong tay, thì ta sẽ tìm mẫu prototype này
Bạn chỉ cần sao chép một đối tượng tương tự hiện có thay vì tạo nó, đó làtốn thời gian
Mẫu này liên quan đến việc thực hiện giao diện nguyên mẫu, nó tạo
ra một bản sao của đối tượng hiện tại Mẫu này được sử dụng khi tạo trựctiếp đối tượng là tốn kém
Những lợi ích của mô hình Prototype
+ Giảm thời gian để tạo các đối tượng tốn thời gian
+ Mô hình này làm giảm lớp con
+ Mẫu này thêm và xóa các đối tượng trong thời gian chạy
+ Mẫu này cấu hình ứng dụng với các lớp một cách linh hoạt
Trang 16Builder design pattern
Tách biệt việc xây dựng một đối tượng phức tạp khỏi biểu diễn của
nó để quá trình xây dựng tương tự có thể tạo ra các biểu diễn khác nhau
Logic và quá trình tạo đối tượng phải là chung để bạn có thể sử dụng
nó để tạo các triển khai cụ thể khác nhau của cùng loại đối tượng Mẫu nàyđơn giản hóa việc xây dựng các đối tượng phức tạp và nó ẩn các dựngđược sử dụng để xây dựng một đối tượng phức tạp từng bước và cuối cùng
nó sẽ trả về đối tượng hoàn chỉnh chi tiết về cấu trúc của đối tượng từ mãngười gọi máy khách
Khi bạn đang sử dụng mẫu này, hãy nhớ rằng bạn phải xây dựng nótừng bước một, điều đó có nghĩa là bạn phải chia đăng nhập xây dựng đốitượng thành nhiều giai đoạn, không giống như các mẫu khác, chẳng hạnnhư nhà máy trừu tượng và mẫu nhà máy, mà đối tượng trong một bướcduy nhất
Những lợi ích của mô hình Prototype
+ Mô hình này cung cấp cho bạn sự cô lập hoàn toàn giữa việc xâydựng và biểu diễn của một đối tượng
+ Mẫu này cho phép bạn xây dựng đối tượng theo nhiều giai đoạn,
vì vậy bạn có quyền kiểm soát nhiều hơn đối với quy trình xây dựng
+ Mẫu này cung cấp sự linh hoạt để thay đổi biểu diễn bên trong củađối tượng
Thực thi mẫu Singleton vào Spring Framework
Spring Framework thực hiện mô hình thiết kế xây dựng(builder) mộtcách minh bạch trong một số chức năng Các lớp sau dựa trên mẫu thiết kế
Trang 17xây dựng(builder) trong Spring Framework:
và sau bước cuối cùng, bạn sẽ nhận được một đối tượng phức tạp
Mẫu builder là một mẫu thiết kế phần mềm tạo đối tượng Mục đích
là để trừu tượng các bước xây dựng để các triển khai khác nhau của cácbước này có thể xây dựng các biểu diễn khác nhau của các đối tượng
Thông thường, mẫu xây dựng được sử dụng để xây dựng các sản phẩmtheo mẫu tổng hợp
Trang 183 Consideration of Structural and Behavioral
Patterns
Tiếp tục các phần tiếp theo của GOF design pattern đó là structural andbehavioral design patterns
1 Phân tích cốt lõi của mẫu thiết kế
● Structural design pattern: các mẫu trong danh mục này sẽ đảm
nhiệm các thành phần của các class hoặc các đối tượng
● Trong phần mềm doanh nghiệp thì có 2 kĩ thuật cơ bản để tái sửdụng các chức năng của hệ thống hướng đối tượng đó là:
o Inheritance (Kế thừa): kế thừa các trạng thái và biểu hiện của
class khác
o Composition: Được sử dụng như là các thành phần của các
đối tượng khác như một biến của class, Thành phần hóa cácđối tượng để nhận các tính năng
● Behavioral design pattern: các mẫu trong danh mục này nêu rõ đặc
điểm và các cách thức để các class và object tương tác với nhau vàđóng góp nhiệm vụ Các mẫu này xác định các phương thức để màgiao tiếp giữa các object với nhau trong phần mềm Giảm thiểu độphức tạp của luồng điều khiển, đóng gói các thuật toán và linh hoạttrong việc chọn 1 trong số các thuật toán để sử dụng
3.1. Mẫu cấu trúc
tới cấu trúc quan hệ giữa các object
rộng
trúc hệ thống không phải thay đổi theo
Mẫu adapter
Trang 19- 2 class không thể làm việc chung do không tương thích interface
thích chức năng nhưng vẫn có thể tích hợp với nhau được
Lợi ích của mẫu Adapter
thích nhau
mềm
Yêu cầu chung khi dùng mẫu Adapter
class khác không tương thích nhau
Triển khai mẫu Adapter trên Spring Framework
năng tách biệt của framework
Trang 20- The Adapter class: Là class bọc bên ngoài triển khai các interface mongmuốn và chỉnh sửa yêu cầu có trong class Adapee
chức năng và chỉnh sửa chức năng sử dụng
Mẫu cầu nối
abstract class và các class đang triển khai interface Dễ dàng thay đổichúng mà không ảnh hưởng đến mã nguồn của client
Lợi ích của mẫu cầu nối
sử dụng các lớp abstract
Trang 21Các vấn đề thường thấy đã bị loại bỏ khi áp dụng mẫu cầu
- Mở rộng abstraction và các triển khai bằng các lớp con
Triển khai mẫu cầu nối trong Spring Framework
Các module spring dưới đây là dựa vào mẫu bridge:
Spring logging
Mẫu composite
sự liên kết của các nút lá và nhánh
Các vấn đề thường thấy được giải quyết bằng mẫu composite
này như là 1 thành phần của các object khác và là 1 object riêng lẻ khác
Trang 22dụng tương tự nhau
Cấu trúc UML của mẫu composite
Mẫu composite dựa trên thành phần của cấu trúc cây, cây có 3 phần
là nhánh, node và lá
nhỏ, nút, lá khác Component cung cấp sự trừu tượng cho tất cảthành phần bao gồm cả composite object Trong mẫu Composite,component là interface của các đối tượng
và lá khác Nó có các method để thêm con như là một collection
có cùng 1 kiểu object, nó bao gồm nhiều phương thức componentcho con
Lợi ích của mẫu composite
thay đổi trong các component hiện có
và các object hỗn hợp
Trang 23Mẫu decorator
object trong quá trình runtime một cách linh hoạt hoặc tĩnh mà không cầnthay đổi hành vi hiện có của các object từ cùng 1 class
Lợi ích của mẫu decorator
cấu trúc của các object hiện có
Trang 24Các lớp và đối tượng tương tác với nhau:
một cách linh hoạt
interface và nó khai báo 1 object mà trách nhiệm thêm có thể được đínhvào
khai báo interface phù hợp
của mẫu decorator và nó thêm trách nhiệm đến các component
Mẫu Facade
Lợi ích của mẫu Facade:
dàng hiểu rõ
việc của hệ thống
Nhân biết được khi cần sử dụng mẫu facade
Ví dụ bạn cần phát triển một phần mềm bank cho doanh nghiệp vớinhiều service để làm việc bạn cần (AccountService, TranferService), Mãnguồn của client sẽ tương tác với tất cả service này để chuyển tiền từ tàikhoản này sang tài khoản khác
Trang 25Mã nguồn client trực tiếp tương tác với các class trong hệ thống con,
có thể mô tả 1 hoặc nhiều interface giúp cho hệ thống con dễ sử dụng hơn
Mẫu ủy quyền
cần tới nó
cùng với đó là chức năng
Trang 26Mục đích của mẫu ủy quyền
Cấu trúc UML của mẫu ủy quyền
được đại diện bởi Proxy
sự của Subject, nó duy trì việc giới thiệu đến object thật sự
3.2 Mẫu hành vi
vận hành một nhiệm vụ mà không một object nào có thể vận hành được
liên kết và đóng góp nhiệm vụ
Mẫu xâu chuỗi nhiệm vụ
Trang 27- Sender và receivers của request được tách ra, sender gửi request đếnchuỗi của receivers và 1 trong số receiver object có thể đảm nhận request
Lợi ích của mẫu Chain of Responsibility:
giải quyết request
làm việc như một đơn vị duy nhất
request, hoặc đưa request đến phiên xử lí tiếp theo
request trong chuỗi
Mẫu yêu cầu
lệnh tới phương thức, trả về là mệnh lệnh là 1 object
người gửi và nhận
Trang 28- Thêm các lệnh trong hệ thống mà không phải thay đổi class hiện tại
tạo action
receiver
concrete command
Mẫu thông dịch viên
Mẫu interpreter cho phép bạn thông dịch một thể hiện ngôn ngữtrong lập trình để khởi tạo một bản trình bày
Trang 29- AbstractExpression: Là interface để thực thi nhiệm vụ bởi sử dụnginterpreter operation
hàm interpret()
nó triển khai interpret() operation
dịch
Mẫu trình lặp lại
các biến thể
trong collection
Trang 30- Iterator: Là interface hoặc lớp ảo để truy cập các items của collection
hàm tạo Iterator interface để trả về là instance của ConcreteIterator thíchhợp
Mẫu bản mẫu
Trong mẫu template, một lớp ảo sẽ bao gói các khởi tạo vào method.Method đó sẽ cho phép kế thừa không được sửa method này Có thể sửdụng concrete class trong phần mềm bạn để hành xử một số loại hànhđộng
Lợi ích việc sử dụng mẫu template:
toán để hiện thực các yêu cầu bài toán
Trang 31- AbstractClass: Là lớp ảo bao gồm các method của template là xươngsống của thuật toán
hoạt động của thuật toán
2 Mẫu thiết kế J2EE
Mẫu thiết kế của Java EE cung cấp phương pháp kiểm thử và luyệntập cho các tương tác của object trong nhiều tầng khác nhau của ứng dụng.Bao gồm 3 phân lớp
Mẫu thiết kế của tầng trình bày:
J2EE doanh nghiệp
request đến ứng dụng J2EE, đưa các request đến các controller để truy cậpmodel và view cho tầng trình bày có dữ liệu