Trung BìnhDesign Patterns iconDesign Patterns

Abstract Factory pattern là gì? Khi nào nên dùng thay Factory Method?

Abstract Factory cung cấp interface để tạo ra các 'family' of related objects mà không cần specify concrete class.

Ví dụ: interface UIFactory { createButton(): Button; createCheckbox(): Checkbox; } với WindowsUIFactoryMacUIFactory implement — đảm bảo Button và Checkbox luôn cùng theme. Khác Factory Method: Factory Method tạo một loại product, Abstract Factory tạo nhiều loại product có quan hệ với nhau. Dùng Abstract Factory khi: cần đảm bảo consistency giữa các component liên quan (UI theme, cross-platform widgets, database driver + connection pool); khi hệ thống cần support nhiều 'variant' và bạn muốn swap toàn bộ variant cùng lúc. Không dùng khi: chỉ có một loại product cần tạo (Factory Method đủ); khi family chỉ có một variant. Trong React, pattern này xuất hiện dưới dạng Context + Provider cung cấp nhiều service liên quan.

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

Mở danh sách Design Patterns