Abstract Factory Pattern là gì? Những thành phần của Abstract Factory Pattern

Bạn có một chương trình "sản xuất" một loạt các sản phẩm liên quan. Sau đó, bạn muốn thêm một số mã “sản xuất” để thêm các sản phẩm khác trong cùng một chương trình mà không thay đổi các mã trước đó. Có một lựa chọn khả thi để thực hiện nó không? Câu trả lời là có! ". Giải pháp mà bạn đang tìm kiếm là Abstract Factory Pattern. Vậy, Abstract Factory Pattern là gì? Các thành phần của Abstract Factory Pattern là gì?

Tìm hiểu về Mô hình Nhà máy Trừu tượng

Mô hình Nhà máy Trừu tượng là gì?

Mô hình nhà máy trừu tượng một trong Mẫu thiết kế sáng tạo - phương pháp tốt nhất để tạo Đối tượng. Mô hình Nhà máy trừu tượng hoạt động như một Siêu nhà máy để tạo ra các nhà máy khác. Ta cũng có thể nói: Mô hình Nhà máy trừu tượng là Nhà máy của Nhà máy.

Trong Abstract Factory Pattern, sẽ có một Interface chịu trách nhiệm tạo một Factory, Factory sẽ tạo ra các Object liên quan mà không chỉ định rõ ràng các lớp của chúng.

trừu tượng-nhà máy-mẫu-la-gi

Khi giải thích theo cách này, bạn thấy Abstract Factory Pattern rất trừu tượng, phải không?

Giải thích một cách dễ hiểu hơn:

Mô hình Nhà máy trừu tượng tương tự như một nhà máy sản xuất ô tô lớn. Một chiếc ô tô sẽ có rất nhiều bộ phận, từ bánh xe, vô lăng, cửa, động cơ, các tấm kính, v.v.

Nhà máy trong Mô hình Nhà máy Trừu tượng sẽ chịu trách nhiệm sản xuất các bộ phận này.

Trên thực tế, nó sẽ còn liên quan đến những việc khác như vận hành, lắp ráp, tổ chức sản xuất,… rất phức tạp.

Trong bài viết, thuthuatkiemtien.com sẽ giữ lại một số từ tiếng Anh như sau để đảm bảo tính thống nhất:

  • Lớp học: lớp học
  • Lớp con: lớp học của tôi
  • Giao diện: trưng bày
  • trừu tượng: trừu tượng
  • Nhà máy: nhà máy
  • Mẫu: mẫu / khuôn
  • Phương pháp: phương pháp, cách thức
  • Sự vật: object / product

Lợi ích của Mô hình Nhà máy Trừu tượng

  • Mô hình nhà máy trừu tượng là Nhà máy của nhà máy. Do đó, chương trình của bạn có thể dễ dàng mở rộng để chứa các nhà máy khác, lớp con khác mà không ảnh hưởng đến các nhà máy và lớp hiện có.
  • Bạn có thể dễ dàng xây dựng một gói lại - hệ thống đóng gói, sử dụng nhiều nhà máy khác nhau, từ đó bạn có thể tạo ra nhiều sản phẩm khác nhau.
  • Khi đang sử dụng Phương thức Nhà máy lớn với quá nhiều xử lý như: if-else hoặc switch-case. Bạn có thể dùng Mô hình nhà máy trừu tượng để dễ quản lý có tính lập trình hơn, nhờ khả năng tự phân loại và phân lớp của các lớp con vào cùng một Nhà máy của Mô hình Nhà máy Tóm tắt.

Ngoài ra, Mô hình Nhà máy Trừu tượng cung cấp:

  • Nhiều cách tiếp cận với Giao diện thay vì triển khai
  • Ẩn sự phức tạp trong quá trình tạo Đối tượng cho người dùng
  • Hỗ trợ khởi tạo Object độc lập với hệ thống bằng Object ..

Các yếu tố của mô hình nhà máy trừu tượng

Để dễ hiểu hơn về Mẫu Xưởng Trừu Tượng, thuthuatkiemtien.com sẽ đưa ra một ví dụ về cửa hàng sản xuất đồ gỗ nhé! Chúng tôi sẽ đặt ra vấn đề và sau đó đưa ra giải pháp để giải quyết nó. Ví dụ này được trích dẫn từ Guru.

Vấn đề

Chúng tôi đang sở hữu một cửa hàng nội thất và chúng tôi có các sản phẩm sau: Ghế + Sofa + CoffeeTable.

Với những sản phẩm đang bán chạy này, chúng tôi có thêm 3 phong cách sản phẩm: Hiện đại, Victoria, ArtDeco.

trừu tượng-nhà máy-mẫu-la-gi

Vấn đề mà chúng tôi đang gặp phải đó là: làm sao để tạo ra những sản phẩm có cùng phong cách với nhau để tạo nên sự thống nhất trong một căn phòng. Và bây giờ, khách hàng của chúng tôi không hài lòng vì sản phẩm họ nhận được là Cái ghế Phong cách Thời Victoria cao quý nhưng ghế Ghế sô pha phong cách một lần nữa Hiện đại hiện đại. Việc “râu ông nọ cắm cằm bà kia” sẽ mang lại cảm giác khó chịu khi nhìn vào phòng.

Giải pháp

Vì vậy, giải pháp chúng ta cần là Abstract Factory Pattern. Những gì chúng ta cần làm là:

  • Khai báo các giao diện cho từng kiểu sản phẩm
  • Dựa vào đó, chúng tôi tiếp tục khai báo giao diện sản phẩm cho từng phong cách để tạo sự thống nhất như sau:
trừu tượng-nhà máy-mẫu-la-gi

Như bạn có thể thấy, các sản phẩm hiện được phân loại thành các nhóm phong cách riêng biệt. Đối với mỗi phong cách, chúng ta sẽ tạo một AbstractFactory, trong mỗi Nhà máy, chúng ta có các sản phẩm giống nhau, ví dụ:

ModernFurnitureFactory sẽ tạo các đối tượng sản phẩm tương ứng như: ModernChair, ModernSofa và ModernCoffeeTable.

Điều này sẽ giúp khách hàng của bạn mua một loạt các sản phẩm tương tự và không vi phạm hoặc sai lệch với các sản phẩm bên trong các nhà máy khác.

Kết cấu

Chúng tôi sẽ đưa ra một mô hình sản xuất lớn hơn và chúng tôi sẽ có một sơ đồ như sau:

trừu tượng-nhà máy-mẫu-la-gi

Trong đó, chúng ta sẽ có:

  • Sản phẩm trừu tượng: Encapsulate Interfaces thu thập các sản phẩm có cùng phong cách.
  • Sản phẩm bê tông: triển khai sản phẩm theo nhóm phong cách nhất định. Ví dụ, mỗi Ghế / Sofa sẽ phải theo phong cách Victoria / Hiện đại.
  • Giao diện nhà máy trừu tượng: Đây là Giao diện thu thập các phương thức để tạo ra các sản phẩm Trừu tượng.
  • Nhà máy Bê tông: thực hiện các phương thức của Nhà máy trừu tượng. Mỗi Nhà máy sẽ chỉ tạo ra một biến thể sản phẩm tương ứng.
  • Cuối cùng, chúng tôi có Khách hàng, họ sẽ có thể làm việc với bất kỳ Nhà máy Trừu tượng nào hoặc bất kỳ sản phẩm Trừu tượng nào, miễn là họ làm việc thông qua Giao diện.

Ưu điểm và nhược điểm của mô hình nhà máy trừu tượng

Sau khi đã nắm được thông tin về các thành phần của Abstract Factory Pattern, chúng ta sẽ tiếp tục tìm hiểu ưu nhược điểm của Abstract Factory Pattern nhé!

Ưu điểm của mô hình nhà máy trừu tượng

Ưu điểm hữu ích nhất của Mô hình Nhà máy Tóm tắt là nó có thể giúp Khách hàng biết chính xác loại nào cần tạo, Nhà máy nào sẽ tạo ra sản phẩm nào.

  • Ngay trong ví dụ cụ thể trên, chúng ta có thể thấy Mỗi Nhà máy sẽ có chính xác kiểu lớp Đối tượng được tạo trong. Điều này sẽ giúp Khách hàng dễ dàng xác nhận và làm việc trên các Giao diện Tóm tắt mà không bị nhầm lẫn.
  • Dễ dàng quản lý các sản phẩm bê tông hơn. Nếu bạn muốn thay đổi toàn bộ kiểu Object bên trong, bạn chỉ cần thay đổi cấu trúc của Concrete. Ví dụ từ Modern, bạn có thể đổi sang phong cách ArtDeco mà không cần thay đổi từng sản phẩm bên trong.

Nhược điểm của Mô hình Nhà máy Trừu tượng

Bất lợi lớn nhất và phải xảy ra nếu bạn muốn thêm một sản phẩm mới là sự phức tạp trong cấu trúc Factory.

Để thêm một sản phẩm mới, bạn sẽ phải thay đổi các lớp bên trong Nhà máy Tóm tắt và tất cả các lớp con của sản phẩm đó nếu có.

trừu tượng-nhà máy-mẫu-la-gi

Đến đây, thuthuatkiemtien.com đã giải thích Mô hình Nhà máy Trừu tượng bằng các ví dụ một cách dễ hiểu nhất. Có vẻ như việc triển khai Mô hình Nhà máy Trừu tượng thực sự phức tạp. Tuy nhiên, khi thiết kế từng bộ phận lại đảm nhận công việc chuyên biệt của riêng nó, giúp tổng thể đạt được mức độ hoàn thiện cao hơn. thuthuatkiemtien.com hy vọng rằng, bạn sẽ chọn được Mẫu phù hợp và áp dụng thành công vào dự án của mình!

Bài viết có tham khảo từ: Stack Java, JavaTPoint, geeksforgeeks, TopDev, TutorialsPoint, Guru, GPCoder ...

Câu hỏi thường gặp về Mô hình nhà máy trừu tượng

Tôi nên sử dụng Factory Method hay Abstract Factory?

Sẽ không có câu trả lời chính xác 100% cho câu hỏi này. Câu trả lời sẽ tùy thuộc vào cách bạn muốn xây dựng phần mềm / ứng dụng của mình để chọn Factory Method hoặc Abstract Factory; hoặc bạn sẽ cần sự linh hoạt để áp dụng cả Phương pháp Nhà máy hoặc Nhà máy Tóm tắt cho dự án của mình.

Khi nào sử dụng Factory Method?

Thông thường, Factory Method sẽ được sử dụng để thay thế các bộ công cụ hoặc khuôn khổ nhất định. Mã khung cần tạo một đối tượng là lớp con Trừu tượng tương ứng, để tăng tính linh hoạt của khung.

Ưu điểm của Phương pháp Nhà máy là gì?

Phương pháp Nhà máy giúp giảm sự phụ thuộc giữa người tạo và sản phẩm bê tông.

Factory Method hỗ trợ tập hợp các đoạn mã để tạo ra một sản phẩm tập trung cho bạn dễ dàng thao tác và theo dõi.

Phần mở rộng phần mềm sẽ đơn giản hơn, bạn chỉ cần thêm mã mới vào chương trình mà không phá vỡ cấu trúc ban đầu.

Khi nào sử dụng Factory Method?

Phương pháp Nhà máy nên được sử dụng khi bạn muốn:

  • Tạo một cách khởi tạo đối tượng mới
  • Giảm sự phụ thuộc
  • Ẩn logic xử lý trong quá trình khởi tạo

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Lầu 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, P. Bến Nghé, Q.1, TP.
    VPĐD: 42 Trần Phú, P.4, Q.5, TP.HCM
  • Điện thoại: 0364 333 333
    Tổng đài miễn cước: 1800 6734
  • Email: sales@tino.org
  • Trang web: www.tino.org

Xem thêm nhiều bài viết về : Kiến Thức Cơ Bản

Nguồn: Abstract Factory Pattern là gì? Những thành phần của Abstract Factory Pattern

Nhận xét

Bài đăng phổ biến từ blog này

3 Cách để kiếm tiền từ blog WordPress

Google AdSense bỏ giới hạn số lượng quảng cáo trên mỗi trang

Toàn tập danh sách liên kết đơn trong C++