Table of Contents
Mẫu Bộ Tư pháp là mẫu thiết kế mạnh mẽ trong chương trình theo hướng đối tượng cho phép các nhà phát triển thêm chức năng mới vào các vật thể hiện có một cách năng động. Mẫu này đặc biệt hữu ích khi bạn muốn mở rộng hành vi của vật thể mà không thay đổi mã nguồn gốc.
Hiểu gương mẫu của Đấng đoán xét
Ý tưởng chính đằng sau mẫu bộ luật là tạo một gói chung quanh một đối tượng, được gọi là nhà trang trí, thêm vào hành vi hay trách nhiệm mới. Cách này khuyến khích khả năng tái sử dụng mã và theo sát nguyên tắc Open/Closed, lớp có nghĩa mở rộng cho phần mở rộng nhưng đóng lại để sửa đổi.
Cách hoạt động
Trên thực tế, mẫu tự của Đấng Cai Trị bao gồm ba yếu tố chính:
- Máy tính: Giao diện hoặc lớp trừu tượng định nghĩa các chức năng lõi.
- Thành phần con Đối tượng gốc thực hiện giao diện thành phần.
- Trình vẽ: Một lớp học trừu tượng mà thực hiện giao diện thành phần và chứa một tham chiếu đến một đối tượng thành phần.
Các nhà trang trí nhà kính mở rộng lớp trang trí để thêm tính năng hoặc hành vi cụ thể. Thiết lập này cho phép nhiều nhà trang trí xếp chồng, mỗi người thêm chức năng riêng.
Lợi ích của việc dùng gương mẫu của Đấng đoán xét
- Khả năng đọc:[FLT: 1] dễ dàng thêm hay gỡ bỏ tính năng vào lúc chạy.
- Khả năng tái sử dụng: khuyến khích mã được sử dụng lại bằng cách tạo những nhà trang trí có thể sử dụng lại.
- Khả năng phục hồi:) Giữ cho các lớp học đơn giản và tập trung vào các trách nhiệm cốt lõi của họ.
- Mở/Closed Nguyên tắc: chức năng mở rộng không thay đổi mã đã có.
Gương mẫu thực tế
Giả sử bạn có một đối tượng cửa sổ cơ bản trong ứng dụng GUI. Bạn muốn thêm thanh cuộn hay viền động. Thay vì sửa đổi lớp cửa sổ, bạn có thể tạo những nhà trang trí cho mỗi tính năng.
Đây là một minh họa đơn giản:
Giao diện thành phần
Định nghĩa các phương pháp mà mọi vật, kể cả những người trang trí, phải thực hiện.
Thành phần đặc trưng
Vật thể cửa sổ cơ bản cung cấp chức năng cốt lõi.
Bộ phân giải
Lớp có thêm tính năng như thanh cuộn hoặc biên bằng cách bao các đối tượng cửa sổ.
Kết luận
Mẫu Bộ Tư pháp cung cấp một cách linh hoạt để mở rộng chức năng đối tượng một cách năng động. Bằng cách sử dụng các nhà trang trí, các nhà phát triển có thể giữ cho mã của họ sạch, bảo trì và thích nghi được thay đổi các yêu cầu. Mẫu này được sử dụng rộng rãi trong phát triển UI, xử lý luồng, và nhiều miền khác nơi tính năng linh hoạt bổ sung là thiết yếu.