© 2026 Laravel

Bridge Pattern - Cây cầu kết nối

1 phút đọc 0 lượt xem

Pattern thuộc nhóm Structural Pattern (Cấu trúc)

#1. Problem & Motivation

Có 2 chiều thay đổi độc lập: Loại bài viết (Blog, Snippet) và Định dạng (Web, JSON). Nếu kế thừa (inheritance), bạn cần 2x2 = 4 class. Nếu thêm 1 loại và 1 định dạng → bùng nổ class.

#2. Định nghĩa

Bridge Pattern tách biệt cấu trúc trừu tượng (Abstraction) và triển khai (Implementation) thành 2 phân cấp riêng biệt, kết nối chúng qua một “cây cầu” (Composition).

#3. Implementation

abstract class Post {
    public function __construct(protected Renderer $renderer) {}
}

class BlogPost extends Post {
    public function show() { return $this->renderer->render("Blog"); }
}

#4. Liên hệ Laravel

Hệ thống Driver của Laravel (Storage, Mail) chính là Bridge: Interface (Storage) là trừu tượng, Driver (S3, Local) là triển khai.

#5. Kết luận

Bridge giúp tránh “bùng nổ class” bằng cách ưu tiên Composition thay vì Inheritance.

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

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