Các mẫu thiết kế Python - Nhà máy
Mô hình nhà máy nằm trong danh mục mô hình sáng tạo. Nó cung cấp một trong những cách tốt nhất để tạo một đối tượng. Trong mô hình gốc, các đối tượng được tạo mà không để lộ logic cho máy khách và tham chiếu đến đối tượng mới được tạo bằng giao diện chung.
Các mẫu nhà máy được triển khai bằng Python bằng phương pháp nhà máy. Khi người dùng gọi một phương thức mà chúng ta truyền vào một chuỗi và giá trị trả về dưới dạng một đối tượng mới được thực hiện thông qua phương thức gốc. Loại đối tượng được sử dụng trong phương thức factory được xác định bằng chuỗi được chuyển qua phương thức.
Trong ví dụ dưới đây, mọi phương thức đều bao gồm đối tượng dưới dạng tham số, được thực hiện thông qua phương thức gốc.
Làm thế nào để thực hiện một mô hình nhà máy?
Bây giờ chúng ta hãy xem làm thế nào để thực hiện một mô hình nhà máy.
class Button(object):
html = ""
def get_html(self):
return self.html
class Image(Button):
html = "<img></img>"
class Input(Button):
html = "<input></input>"
class Flash(Button):
html = "<obj></obj>"
class ButtonFactory():
def create_button(self, typ):
targetclass = typ.capitalize()
return globals()[targetclass]()
button_obj = ButtonFactory()
button = ['image', 'input', 'flash']
for b in button:
print button_obj.create_button(b).get_html()
Lớp nút giúp tạo các thẻ html và trang html được liên kết. Máy khách sẽ không có quyền truy cập vào logic của mã và đầu ra đại diện cho việc tạo trang html.
Đầu ra
Giải trình
Mã python bao gồm logic của các thẻ html, giá trị đã chỉ định. Người dùng cuối có thể xem tệp HTML được tạo bởi mã Python.