Реализация шаблона фабричного дизайна? - PullRequest
0 голосов
/ 22 мая 2018

Я искал реализацию шаблона проектирования метода фабрики в 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

или есть особая ситуация, когда предпочтителен / желателен метод на основе классов.

ПРИМЕЧАНИЕ: Примеры, найденные в Интернете, которые используют классы.

Пример 1 . Пример 2

...