可以使用工厂模式解决。
通过工厂模式,定义一个工厂类来根据传入的模块类型创建相应的模块实例。工厂类的实现可以使用条件语句或者Switch语句根据不同参数生成对应的模块实例。
示例代码:
class Module:
def exec(self):
pass
class ModuleA(Module):
def exec(self):
print("ModuleA executed")
class ModuleB(Module):
def exec(self):
print("ModuleB executed")
class ModuleC(Module):
def exec(self):
print("ModuleC executed")
class ModuleFactory:
@staticmethod
def create(module_type):
if module_type == "A":
return ModuleA()
elif module_type == "B":
return ModuleB()
elif module_type == "C":
return ModuleC()
else:
raise ValueError("Invalid module type")
module_type = "B" # 传入的参数
module = ModuleFactory.create(module_type)
module.exec() # 实例化对应的模块类型并执行
以上代码中,我们定义了一个抽象的Module
类,它有一个exec()
方法,我们根据不同的模块类型继承Module
类并实现它的exec()
方法。然后我们定义一个ModuleFactory
工厂类,它有一个静态方法create()
,根据传入的参数生成对应的模块实例。最后,我们在调用时传入模块类型作为参数,生成对应的模块实例并执行exec()
方法。