# 工厂模式

相对于简单工厂模式, 工厂模式更易于维护, 很明显简单工厂模式违反了代码开闭原则, 如上个例子,一旦service进行扩展, 就必须修改代码以作扩展。而工厂模式,将每一个细分工厂进行进行封装。

# 代码实例

class Service:
    """
    服务基类
    """
    pass


class ServiceV1(Service):
    """
    服务一
    """
    pass


class ServiceV2(Service):
    """
    服务二
    """
    pass


class CreateInterface:
    """
    工厂基类
    """

    def create(self):
        raise NotImplementedError


class CreateServiceV1(CreateInterface):
    """
    工厂1 , 提供服务 V1
    """

    def create(self):
        return ServiceV1()


class CreateServiceV2(CreateInterface):
    """
    工厂2 , 提供服务 V2
    """

    def create(self):
        return ServiceV2()


service_v1 = CreateServiceV1()
client_v1 = service_v1.create()

service_v2 = CreateServiceV2()
client_v2 = service_v2.create()