Proxy Pattern là gì?
Proxy pattern là một dạng design pattern thuộc nhóm cấu trúc. Pattern này cung cấp 1 object gọi là object ảo dùng để bao bọc bên ngoài của object thật -> cái xử lý chương trình bên trong.
Tại sao chúng ta dùng Proxy Pattern?
Có nhiều tình huống khiến chúng ta cần phải dùng đến Proxy Pattern như:
- Chúng ta cần xử lý input trước khi đưa vào object thật hoặc output sau khi nhận kết quả
- Việc khởi tạo object thật tốn khá nhiều chi phí nên chúng ta dùng object ảo và chỉ khởi tạo object thật khi nó được người dùng sử dụng tới
- Chúng ta cần thêm những actions đi kèm khi mà object thật được truy cập tới. Ví dụ:
- Kiểm tra quyền truy cập xem người dùng có thực sự được phép truy cập tới object thật hay không.
- Lock object thật khi xử lý dữ liệu để nó không thể bị truy cập bởi các đối tượng khác
- Đếm số lượng truy cập tới object thật
- Remote proxy cung cấp 1 local object đại điện cho object thật ở nơi khác
Cấu trúc
Ví dụ Proxy Pattern trong Java
Trong ví dụ mẫu này mình sẽ implement 1 chương trình dùng proxy image để giảm tải việc load image từ ổ cứng. Đầu tiên sẽ là interface Image: Tiếp đó là RealImage service và ProxyImage service: Cuối cùng là class demo:
Kết quả ouput sẽ như sau: Source code sử dụng trong bài viết: https://github.com/luubi/design-patterns/tree/master/src/main/java/com/vlt/proxy
Nguồn: Bài viết liên quan:
EmoticonEmoticon