问题描述
我有一个基本抽象类和2个子类(Reader_a和Writer_a)。我有另一组类(reader_b,writer_b),它们从相同的基类继承。 writer_a writer_b和reader_a和reader_b的用途相同,但处理的图像类型不同,基本上它们的后端不同。 python中有什么功能可以根据用户输入的图像类型切换这些类?
解决方法
我会在基类中添加两个工厂(静态)方法,这些方法将检查类型并相应地创建正确的子类。
class Base:
@staticmethod
def create_reader(image):
if image == 'A':
return Reader_a()
elif image == 'B':
return Reader_b()
else:
raise Exception('Unknown image')
@staticmethod
def create_writer(image):
if image == 'A':
return Writer_a()
elif image == 'B':
return Writer_b()
else:
raise Exception('Unknown image')