© 2026 Laravel

Facade Pattern: Đơn giản hóa hệ thống phức tạp

2 phút đọc
#design-patterns #structural #laravel

Mục lục bài viết

Sử dụng các mục để điều hướng nhanh

#1. Vấn đề

Khi bạn cần sử dụng một hệ thống phức tạp gồm hàng chục class (ví dụ: khởi tạo Audio/Video converter), việc gọi từng cái làm code rối tung.

#2. Định nghĩa

Facade Pattern (Structural) tạo ra một lớp duy nhất đóng gói (wrap) toàn bộ các class phức tạp bên trong, cung cấp một giao diện dễ dùng nhất.

#3. Cách giải quyết

class ConverterFacade {
    public function convert($file) {
        $parser = new Parser(); $encoder = new Encoder(); $writer = new Writer();
        // logic kết hợp chúng...
    }
}

#4. Ứng dụng Laravel

Facades của Laravel chính là ứng dụng đỉnh cao nhất của Pattern này. Bạn gọi Cache::get() - bên dưới nó là một tập hợp các driver, store, event dispatcher phức tạp mà bạn không cần biết.

#5. Phỏng vấn

  • Q: Tại sao gọi là Facade (Mặt tiền)? Vì nó che giấu sự phức tạp đằng sau giống như một bức tường mặt tiền của ngôi nhà.
  • Q: Khác biệt với Adapter? Adapter đổi interface cho khớp. Facade đơn giản hóa interface cho gọn.

Bài viết liên quan

Design Pattern là gì?

Tìm hiểu Design Pattern là gì, cách hoạt động, sự khác biệt với thuật toán và phân loại 3 nhóm Design Pattern phổ biến trong lập trình.

4 phút đọc