工厂设计模式实施?

时间:2018-05-22 17:15:21

标签: python factory factory-pattern

我一直在研究如何在python&中实现工厂方法设计模式我得到的大多数例子都是这种形式。

class Cup:
    color = ""

    # This is the factory method
    @staticmethod
    def getCup(cupColor):
        if (cupColor == "red"):
            return RedCup()
        elif (cupColor == "blue"):
            return BlueCup()
        else:
            return None

class RedCup(Cup):
    color = "red"

class BlueCup(Cup):
    color = "blue"

# A little testing
redCup = Cup.getCup("red")
print "%s(%s)" % (redCup.color, redCup.__class__.__name__)

blueCup = Cup.getCup("blue")
print "%s(%s)" % (blueCup.color, blueCup.__class__.__name__)

为什么使用class作为工厂函数?

不能只是这样:

def CupFactory(cupColor):
    if (cupColor == "red"):
        return RedCup()
    elif (cupColor == "blue"):
        return BlueCup()
    else:
        return None

或者存在特定情况,其中基于类的方法是首选/期望​​的。

注意:互联网上使用类的示例。

Example 1
Example 2

0 个答案:

没有答案