© 2026 Laravel

Abstract Factory: Kiến trúc tạo họ đối tượng

2 phút đọc
#design-patterns #php #architecture #creational

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

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

Nếu Factory Method tạo ra một sản phẩm, thì Abstract Factory tạo ra một “gia đình” các sản phẩm liên quan.

#1. Khi nào dùng?

Bạn cần tạo các bộ UI cho nhiều nền tảng (Ví dụ: bộ Component của iOS và bộ Component của Android). Bạn cần đảm bảo rằng một nút bấm (Button) của iOS phải đi kèm với một thanh cuộn (Scrollbar) của iOS, chứ không được lẫn lộn với của Android.

#2. Code ví dụ

interface WidgetFactory {
    public function createButton(): Button;
    public function createCheckbox(): Checkbox;
}

class IOSFactory implements WidgetFactory {
    public function createButton(): Button { return new IOSButton(); }
    public function createCheckbox(): Checkbox { return new IOSCheckbox(); }
}

#3. Tại sao cần cho Senior?

Nó giúp bạn thiết lập “Hợp đồng” (Interface) cho một hệ thống lớn. Khi hệ thống cần mở rộng sang nền tảng mới (ví dụ: Windows Phone), bạn chỉ cần implement thêm WindowsFactory mà không thay đổi bất kỳ dòng code Client nào.

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