# 简单工厂模式

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

# 适用性

当一个类不知道它所必须创建的对象的类的时候。 当一个类希望由它的子类来指定它所创建的对象的时候。 当类将创建对象的职责委托给多个子类中的某一个。

# 代码实例

总体来说他就是不希望调用者自己来创建对象,而是让调用者选择创建哪一类对象。假设我们模块有个对外提供client客户端,而service 端希望提供给字服务正常的服务。那么客户端可以提供版本号来控制。

# 服务端代码

class ServiceV1:
    def __init__(self):
        pass


class ServiceV2:
    def __init__(self):
        pass


def service(version=None):
    if version is None:
        return 'version 是 1 或 2'
    if version == 1:
        return ServiceV1()
    if version == 2:
        return ServiceV2()

# 客户端代码

client = service(version=1)