Factory Pattern

Download Report

Transcript Factory Pattern

Factory Pattern
What is wrong with new?
Những đoạn code như thế
này xuất hiện ở nhiều nơi
trong chương trình, dẫn đến
khó sửa, khó mở rộng
A Pizza Store
But we need more types of pizzas
It’s time
encapsulate
things
…to
and
even more
laterthat vary
Encapsulate
object creation
Đối tượng factory được truyền
vào trong constructor của
PizzaStore.
Phương thức orderPizza dùng đối
tượng factory để tạo pizza bằng
cách truyền cho nó loại pizza
Để ý rằng ta đã thay toán tử new
bằng một phương thức của đổi
tượng factory. Không còn phụ thuộc
một cài đặt cụ thể nữa!
Simple Factory Pattern
Factory Method Pattern định nghĩa một giao diện cho việc
tạo đối tượng, nhưng nó để cho các lớp con quyết định cần
tạo đối tượng thuộc lớp nào. Factory Method cho phép một
lớp ủy nhiệm việc tạo đối tượng cho các lớp con.
Creator là lớp chứa cài đặt
của tất cả các phương thức
xử lý product, ngoại trừ
phương thức factory
Phương thức trừu tượng
factoryMethod () là cái mà
tất cả các lớp con của
Creator phải cài
Tất cả các product cài cùng
một giao diện để cho các lớp
sử dụng product có thể tham
chiếu qua giao diện thay vì
tham chiếu lớp cụ thể
ConcreteCreator cài
factoryMethod(), là
phương thức thực sự
tạo các product
ConcreteCreator có nhiệm vụ tạo các
product cụ thể. Nó là lớp duy nhất biết
cách tạo các product này