Mẫu thiết kế - Tổng quan
Các mẫu thiết kế đại diện cho các phương pháp hay nhất được các nhà phát triển phần mềm hướng đối tượng có kinh nghiệm sử dụng. Mẫu thiết kế là giải pháp cho các vấn đề chung mà các nhà phát triển phần mềm gặp phải trong quá trình phát triển phần mềm. Những giải pháp này đã được nhiều nhà phát triển phần mềm thu được bằng cách thử và sai trong một khoảng thời gian khá dài.
Gang of Four (GOF) là gì?
Năm 1994, bốn tác giả Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides đã xuất bản một cuốn sách có tựa đề Design Patterns - Elements of Reusable Object-Oriented Software đã khởi xướng khái niệm Mẫu thiết kế trong phát triển phần mềm.
Những tác giả này được gọi chung là Gang of Four (GOF). Theo các tác giả này, các mẫu thiết kế chủ yếu dựa trên các nguyên tắc sau của thiết kế hướng đối tượng.
Chương trình cho một giao diện không phải là một triển khai
Thành phần đối tượng ủng hộ hơn kế thừa
Sử dụng mẫu thiết kế
Mẫu thiết kế có hai cách sử dụng chính trong phát triển phần mềm.
Nền tảng chung cho các nhà phát triển
Các mẫu thiết kế cung cấp một thuật ngữ tiêu chuẩn và cụ thể cho từng trường hợp cụ thể. Ví dụ, một mẫu thiết kế singleton biểu thị việc sử dụng một đối tượng duy nhất, vì vậy tất cả các nhà phát triển quen thuộc với mẫu thiết kế đơn sẽ sử dụng một đối tượng duy nhất và họ có thể nói với nhau rằng chương trình đang tuân theo một mẫu singleton.
Thực hành tốt nhất
Các mẫu thiết kế đã được phát triển trong một thời gian dài và chúng cung cấp các giải pháp tốt nhất cho một số vấn đề nhất định phải đối mặt trong quá trình phát triển phần mềm. Học các mẫu này giúp các nhà phát triển chưa có kinh nghiệm học thiết kế phần mềm một cách dễ dàng và nhanh hơn.
Các loại mẫu thiết kế
Theo sách tham khảo mẫu thiết kế Design Patterns - Elements of Reusable Object-Oriented Software, có 23 mẫu thiết kế có thể được phân loại thành ba loại: Mẫu sáng tạo, Cấu trúc và Hành vi. Chúng ta cũng sẽ thảo luận về một loại mẫu thiết kế khác: mẫu thiết kế J2EE.
SN | Mô hình & Mô tả |
---|---|
1 | Creational Patterns Các mẫu thiết kế này cung cấp một cách để tạo đối tượng trong khi ẩn logic tạo, thay vì khởi tạo đối tượng trực tiếp bằng toán tử mới. Điều này giúp chương trình linh hoạt hơn trong việc quyết định đối tượng nào cần được tạo cho một trường hợp sử dụng nhất định. |
2 | Structural Patterns Các mẫu thiết kế này liên quan đến thành phần lớp và đối tượng. Khái niệm kế thừa được sử dụng để soạn các giao diện và xác định cách soạn các đối tượng để có được các chức năng mới. |
3 | Behavioral Patterns Các mẫu thiết kế này đặc biệt quan tâm đến giao tiếp giữa các đối tượng. |
4 | J2EE Patterns Các mẫu thiết kế này đặc biệt quan tâm đến tầng trình bày. Các mẫu này được xác định bởi Sun Java Center. |