📅  最后修改于: 2023-12-03 15:19:29.300000             🧑  作者: Mango
工厂方法设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式之一。 该模式使用工厂方法来创建对象,而不是直接通过构造函数来实例化对象。 工厂方法是一个创建对象的方法,它返回一个具有确定类型的新对象。
工厂方法设计模式具有以下优点:
Python中可以通过函数或者类的形式来实现工厂方法设计模式。
def create_object(obj_type):
if obj_type == "type_a":
return TypeA()
elif obj_type == "type_b":
return TypeB()
else:
raise ValueError("Invalid object type.")
class TypeA:
def __init__(self):
self.name = "Type A"
class TypeB:
def __init__(self):
self.name = "Type B"
# 使用工厂方法创建对象
obj_a = create_object("type_a")
print(obj_a.name)
obj_b = create_object("type_b")
print(obj_b.name)
class ObjectFactory:
@staticmethod
def create_object(obj_type):
if obj_type == "type_a":
return TypeA()
elif obj_type == "type_b":
return TypeB()
else:
raise ValueError("Invalid object type.")
class TypeA:
def __init__(self):
self.name = "Type A"
class TypeB:
def __init__(self):
self.name = "Type B"
# 使用工厂方法创建对象
obj_a = ObjectFactory.create_object("type_a")
print(obj_a.name)
obj_b = ObjectFactory.create_object("type_b")
print(obj_b.name)
工厂方法设计模式通常在以下情况下使用:
工厂方法设计模式是一种非常有用的设计模式,可以帮助我们更加灵活、可扩展地创建对象。使用工厂方法设计模式可以隐藏对象的创建和处理逻辑,避免客户端直接调用对象的构造函数。在实现工厂方法时,可以使用函数或者类的形式,具体需要根据实际情况选择。