首页 > 解决方案 > 包含相似功能的类之间的动态切换

问题描述

我有一个基本抽象类和 2 个子类(Reader_a 和 Writer_a)。我有另一组从同一个基类继承的类(reader_b,writer_b)。writer_a writer_b 和 reader_a 和 reader_b 用于相同的目的,但处理不同类型的图像,基本上它们具有不同的后端。python中是否有任何功能可以根据用户输入的图像类型切换这些类?

标签: pythonpython-3.xabstract-classmultiple-inheritance

解决方案


我将向基类添加两个工厂(静态)方法,它们将检查类型并相应地创建正确的子类。

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')

推荐阅读