Categories
Software Architecture

Các Mẫu Thiết Kế 5: Mẫu Delegation

Mẫu Delegation

  • Bối cảnh:
    • Bạn đang thiết kế một phương thức trong một lớp
    • Bạn nhận ra rằng một lớp khác có một phương thức cung cấp dịch vụ được yêu cầu
    • Kế thừa không phù hợp
      • Ví dụ vì quy tắc isa không áp dụng
  • Vấn đề:
    • Làm thế nào bạn có thể sử dụng một cách hiệu quả nhất một phương thức đã tồn tại trong lớp kia?
  • Lực lượng:
    • Bạn muốn giảm thiểu chi phí phát triển bằng cách sử dụng lại các phương thức

Delegation

  • Giải pháp:

Giải pháp Delegation.

Delegation

  • Ví dụ:

Ví dụ Delegation.

Thêm các mẫu phần mềm

  • Mẫu thiết kế /Process patterns
    • thành ngữ /idioms (cấp thấp /low level, C++): Jim Coplien, Scott Meyers
      • Tức là, khi nào bạn nên định nghĩa một hàm hủy ảo?
    • thiết kế /design (kiến trúc vi mô /micro-architectures) [Gamma-GoF]
    • kiến trúc /architectural (thiết kế hệ thống /systems design): lớp /layers, phản chiếu /reflection, môi giới /broker
      • Phản chiếu làm cho các lớp (classes) tự nhận thức (self-aware), cấu trúc và hành vi của chúng có thể tiếp cận để thích ứng và thay đổi: Cấp độ meta (Meta-level) cung cấp khả năng tự đại diện (self-representation), cấp độ cơ sở (base level) xác định logic ứng dụng (application logic)
  • Các mẫu thiết kế doanh nghiệp Java /Java Enterprise Design Patterns (các giao dịch và cơ sở dữ liệu phân tán /distributed transactions and databases)
    • Ví dụ: Giao dịch ACID /ACID Transaction: Tính nguyên tử /Atomicity (khôi phục một đối tượng sau một giao dịch không thành công), Tính nhất quán /Consistency, Sự cô lập /Isolation, và Tính bền /Durability
  • Các mẫu phân tích /Analysis patterns (các mô hình phân tích định kỳ & tái sử dụng, từ các lĩnh vực khác nhau, ví dụ như kế toán, kinh doanh tài chính, chăm sóc sức khỏe)
  • Các mẫu quy trình /Process patterns (quy trình và tổ chức phần mềm)

Leave a Reply

Your email address will not be published. Required fields are marked *