Skip to the content
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
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)