Python设计模式 工厂模式
工厂模式属于创建模式列表的范畴。它提供了创建对象的最佳方法之一。在工厂模式中,对象的创建不需要将逻辑暴露给客户端,而是使用一个公共接口来引用新创建的对象。
工厂模式在Python中使用工厂方法实现。当用户调用一个方法,比如我们传入一个字符串,返回值是一个新的对象,通过工厂方法实现。工厂方法中使用的对象的类型由通过方法传递的字符串决定。
在下面的例子中,每一个方法都包含了作为参数的对象,它是通过工厂方法实现的。
如何实现工厂模式
现在让我们看看如何实现工厂模式。
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()
按钮类有助于创建html标签和相关的html页面。客户端将无法接触到代码的逻辑,而输出代表了html页面的创建。
输出
解释
python代码包括html标签的逻辑,它指定了值。最终用户可以查看由Python代码创建的HTML文件。