16.2.1.3Sử dụng phương thức xưởng sản suất(FACTORY METHOD)
Xưởng sản xuất đối tượng là một phương pháp tạo các đối tượng khác. Ta dùng Xưởng sản xuất đối tượng trong trường hợp một đối tượng giữ vai trò tạo ra các đối tượng khác. Để tạo ra các đối tượng khác, ta dùng phương thức; các phương thức này gọi là phương thức xưởng sản xuất.
Ví dụ, đối tượng Database của DAO, có một số phương thức xưởng sản xuất cung cấp đối tượng :
Phương thức
|
Mô tả
|
CreateQueryDef
CreateRelation
CreateTableDef
OpenRecordset
CreateProperty
|
Tạo một đối tượng QueryDef.
Tạo một đối tượng Relation
Tạo một đối tượng TableDef
Tạo một đối tượng Recordset
Tạo một đối tượng Property
|
Ngoài việc sử dụng các phương thức xưởng sản xuất do Visual Basic cung cấp, ta có thể tạo ra các phương thức này trong các lớp tự tạo.
Một lý do phổ biến để dùng các phương thức xưởng sản xuất là yêu cầu thực hiện theo cách tạo đối tượng trong Visual Basic. Các ngôn ngữ lập trình khác sử dụng đối tượng (như Visual C++) có contructor đảm nhiệm việc tạo Instance của đối tượng từ lớp; những constructor còn có thể thi hành các tác vụ khác, như cung cấp các dữ liệu khởi tạo cho lớp. Lớp có nhiều constructor để người lập trình có thể chọn lựa và constructor có thể lấy và trả về tham số.
Tuy nhiên, không có tương quan trực tiếp với constructor trong Visual Basic. Thay vào đó, các lớp Visual Basic có sự kiện Initialize. Ta có thể lập trình trong sự kiện Initialize như trong constructor của Visual C++, nhưng không may là ta không thể truyền tham số cho sự kiện Initialize của Visual Basic, và ta chỉ có một sự kiện Initialize cho mỗi lớp. Nó làm tính tiện dụng của sự kiện Initialize bị hạn chế đối với mọi phần tử, ngoại trừ các giá trị cơ bản nhất là các giá trị mặc định. Các phương thức xưởng sản xuất cung cấp giải pháp khắc phục điều này.
Option Explicit
' Requires CCustomer class
Public Function CreateCustomer(Optional lngID As Variant) As CCustomer
Dim Cust As CCustomer
If IsMissing(lngID) Then
' Create new customer
Set CreateCustomer = New CCustomer
Else
' Retrieve customer from DB
Set Cust = New CCustomer
Cust.GetData (lngID)
Set CreateCustomer = Cust
End If
End Function
Xưởng sản xuất đối tượng tạo một đối tượng khách hàng rất dễ dàng với đầy đủ tính năng. Đoạn chương trình sau tạo đối tượng CCustomer:
Dim MyCust As CCustomer
Dim cf As CCustFactory
Set cf = New CCustFactory
' Retrieve data
Set MyCust = cf.CreateCustomer(txtID.Text)
Một lý do khách để dùng các phương thức xưởng sản xuất trong lập trình cơ sở dữ liệu Visual Basic là để tiết kiệm các tài nguyên kết nối, bởi kết nối đến cơ sở dữ liệu đòi hỏi tiêu tốn nhiều thời gian và bộ nhớ trên Client và Server.
Nếu dùng lớp xưởng sản xuất sẽ dễ dàng hạn chế số kết nối thực hiện với server. Ta chỉ kết nối một lần, trong lớp xưởng sản xuất thay vì trong mỗi mô-dun lớp.
Chia sẻ với bạn bè của bạn: |