Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

LÝ THUYẾT VỀ FACTORY DESIGN PATTERN TRONG C#

1.Khái niệm:
-Factory Pattern là một design pattern thuộc nhóm khởi tạo - Creational patterns - một
trong những Pattern phổ biến trong lập trình hướng đối tượng.
-Là 1 trong 9 Pattern phổ biến trong lập trình hướng đối tượng (OOP).
-Pattern này được sinh ra nhằm mục đích khởi tạo một đối tượng mới mà không cần
thiết phải chỉ ra một cách chính xác class nào sẽ được khởi tạo. Khi bạn cần tạo ra một
object nào đó mà không biết nên dùng class nào,… thì Factory Pattern sẽ giúp bạn làm
điều đó. Bởi nhiệm vụ của nó là quản lý và trả về các đối tượng theo yêu cầu, giúp cho
việc khởi tạo đổi tượng một cách linh hoạt hơn.
-Về mặt kỹ thuật, Factory Design Pattern là một lớp có một phương thức. Phương
thức này sẽ tạo ra và trả về các loại đối tượng khác nhau dựa trên tham số đầu vào mà
nó nhận được.

2.Phân loại:
Factory Design Pattern được chia ra làm 3 loại mô hình nhỏ hơn, đó là:
 Simple Factory – mô hình này dành cho những người không quan tâm đến
thông số của sản phẩm mà chỉ chú ý đến tiêu thụ. Nó sẽ dựa theo đầu vào đã
được đưa vào trước để tạo ra sản phẩm. Mô hình khá đơn giản vì ít tạo ra các
đối tượng mới.
VD: Bạn thích mua sản phẩm A với số lượng là 3 thì mô hình này sẽ trả về kết
quả cho bạn theo đúng nhu cầu.
 Factory Method
-Mô hình này khá phổ biến vì sự tiện lợi. Khi nó ủy quyền cho lớp con để khởi tạo
Object mà không cụ thể các class.
-VD: Chúng ta có một nghiệp vụ cho khách hàng tạo Card tín dụng, chỉ có thể tạo
1 trong 3 loại như loại Basic, loại Gold và loại Platinum. Vấn đề là bạn không biết
khách hàng sẽ tạo cái nào ở runtime. Vậy bạn sẽ làm thế nào? Hãy để cho các
class ( Factory) triển khai interface ( IFactory) và quyết định việc tạo object của
class nào (Basic, Gold, Platinum).
 Abstract Factory
-Cao cấp hơn Factory Method Pattern ở chỗ nó cho phép tạo ra một super factory
dùng để tạo ra các factory khác.
-Trợ thủ đắc lực của các Dev - một factory cao nhất trong hệ thống phân cấp.

3. Sử dụng:
Ta sẽ sử dụng Factory Pattern này khi:
-Muốn tạo ra đối tượng lúc chương trình đang chạy (runtime) nhưng ta chưa biết nó sẽ
trả về đối tượng nào.
-Khi các class con có đặc điểm chung với class cha.
-Khi bạn muốn tập trung các đoạn code liên quan đến việc khởi tạo các đối tượng mới
về cùng một nơi để dễ dàng cho những thao tác và xử lý.

4.Ưu điểm:
Tùy vào mô hình mà ta thấy được những lợi ích sau:
 Mẫu thiết kế này cho phép các lớp con chọn kiểu đối tượng cần tạo.
 Factory Pattern giúp giảm sự phụ thuộc giữa các module: cung cấp 1 hướng tiếp
cận với Interface thay vì các implement. Giúp chương trình độc lập với những lớp
cụ thể mà chúng ta cần tạo 1 đối tượng, code ở phía client sẽ không bị ảnh
hưởng khi thay đổi logic ở factory hay sub class.
 Việc mở rộng code dễ dàng hơn: chỉ việc tạo ra những sub class và implement
thêm vào Factory khi có nhu cầu hay thêm những đoạn code mới vào chương
trình mà không cần phá vỡ các đối tượng ban đầu.

5.Khuyết điểm:
Mã code đôi khi có thể trở nên phức tạp hơn mức bình thường do đòi hỏi phải sử dụng
nhiều class mới có thể cài đặt được pattern này(tùy loại mô hình mà bạn lựa chọn).
Yêu cầu 3: lấy ví dụ
https://topdev.vn/blog/huong-dan-su-dung-factory-trong-design-pattern/
https://viblo.asia/p/design-pattern-factory-pattern-part-1-XqaGEmxZGWK
https://freetuts.net/factory-design-pattern-trong-c-sharp-5599.html

quan trọng
https://anonystick.com/blog-developer/phan-2-factory-pattern-cach-ma-toi-trien-khai-
trong-nha-may-vinfast-fresher-va-junior-nen-bo-qua-phan-3-2020110554662242

You might also like