python: 工厂函数factory functions

工厂方法

a factory method returns (new) objects.

工厂函数

A factory function is basically used to return (new) objects.

简单的工厂函数用法:

def fun(N):
    def action(X):
        return X * N
    return action

返回一个新的对象, 其类型是基于输入决定的。

class Car(object):

    def factory(type):
        if type == "Racecar":
            return Racecar()
        if type == "Van":
            return Van()
        assert 0, "Bad car creation: " + type

    factory = staticmethod(factory)

class Racecar(Car):
    def drive(self): print("Racecar driving.")

class Van(Car):
    def drive(self): print("Van driving.")

# Create object using factory.
obj = Car.factory("Racecar")
obj.drive()