5.3. Design Building Blocks: Heuristics

Look for Common Design Patterns

Trong quá trình thiết kế phần mềm, chúng ta sẽ bắt gặp những vấn đề mà các giải pháp xử lý chúng tương tự với các giải pháp cho một số các vấn đề đã gặp trong quá khứ. Sẽ thật lãng phí tài nguyên nếu lặp lại một điều gì đó hàng chục lần với đầy đủ các bước từ 1 đến n. Giải pháp xử lý những vấn đề tương tự nhau một cách hiệu quả là Design Patterns (thiết kế mẫu).

Design Patterns cung cấp các giải pháp tạo sẵn (ready-made) cho các vấn đề tương tự nhau và là một trong những kỹ thuật cốt lõi trong thiết kế hướng đối tượng.

Một số lợi ích mà các Patterns mang lại:

  • Patterns reduce complexity by providing ready-made abstractions: Vì cung cấp một tập giải pháp có sẵn theo tiêu chuẩn công nghiệp, nên việc giao tiếp giữa các thành viên trong nhóm phát triển trở nên dễ dàng hơn.
  • Patterns reduce errors by institutionalizing details of common solutions: Các giải pháp cung cấp sẵn tuân theo tiêu chuẩn công nghiệp và là những kinh nghiệm đã được đúc kết từ nhiều chuyên gia trước đó nên việc sử dụng chúng sẽ tiết kiệm nhiều thời gian, công sức và tin cậy. Đứng trên vai người khổng lồ là vậy.
  • Patterns provide heuristic value by suggesting design alternatives: Với các Patterns, người thiết kế phần mềm sẽ có sẵn một tập các giải pháp tham khảo để lựa chọn phù hợp với vấn đề đang giải quyết. Nếu không phù hợp, thì các patterns này cũng là các gọi ý có giá trị để người thiết kế có thể tạo ra các giai3i pháp mới. Sáng tạo là kết nối những thứ có sẵn theo một cách khác.
  • Patterns streamline communication by moving the design dialog to a higher level: Tương tự ý thứ 3, việc tìm hiểu, thảo luận giữa các thành viên về các Patterns có thể dẫn đến những hiểu biết sâu sắc hơn về vấn đề và giải pháp.

Các nguồn tham khảo hữu ích về Design Patterns: