Trung BìnhDesign Patterns iconDesign Patterns

Proxy pattern là gì? Các loại Proxy phổ biến?

Proxy cung cấp surrogate object thay thế cho object khác — control access đến object gốc và có thể thêm logic trước/sau.

Các loại phổ biến:

  1. Virtual Proxy (lazy initialization): chỉ tạo object nặng khi thực sự cần — ví dụ lazy load image;
  2. Protection Proxy (access control): kiểm tra permission trước khi delegate;
  3. Caching Proxy: cache result của expensive operation;
  4. Logging Proxy: ghi log mọi request đến object

JavaScript Proxy object là triển khai native:

javascript
const handler = {
  get(obj, prop) {
    console.log(`Getting ${String(prop)}`)
    return obj[prop]
  }
}
const proxy = new Proxy(target, handler)

Trong NestJS, Guards và Interceptors là Proxy pattern.

  • Khác Decorator: Proxy thường quản lý lifecycle của subject; Decorator thêm behavior mà client biết.
  • Dùng khi: cần access control, lazy init, caching, logging mà không sửa class gốc.

Xem toàn bộ Design Patterns cùng filter theo level & chủ đề con.

Mở danh sách Design Patterns