Python設計模式-工廠模式

工廠模式有三種模式:
簡單工廠模式:定義一個創建對象接口,通過參數來決定創建哪個類的實例
工廠方法模式:定義一個創建對象接口,讓子類來決定創建哪個類的實例,工廠方法使一個類的實例化延遲到到其子類中
抽象工廠模式:提供一些列相關或相互依賴的對象接口,而指定他們的具體類

from abc import ABCMeta,abstractmethod

#引用ABCMeta和abstractmethod來定義抽象類和抽象方法
class Coffee(metaclass=ABCMeta):
    def __init__(self,name):
        self.__name = name

    def getName(self):
        return self.__name

    @abstractmethod
    def getTaste(self):
        pass

class MilkCoffee(Coffee):
    def __init__(self,name):
        super().__init__(name)

    def getTaste(self):
        print("有牛奶有咖啡")

class LatteCoffe(Coffee):
    def __init__(self,name):
        super().__init__(name)

    def getTaste(self):
        print("拿鐵咖啡很好喝")

class CoffeeFactory:
    def makeCoffe(self,type):
        if(type == 0):
            self.__coffee = MilkCoffee("牛奶咖啡")
        else:
            self.__coffee = LatteCoffe("拿鐵咖啡")

        return self.__coffee

def test():
    coffeeFactory = CoffeeFactory()
    coffee1 = coffeeFactory.makeCoffe(0)
    coffee1.getTaste()
    coffee2 = coffeeFactory.makeCoffe(1)
    coffee2.getTaste()
test()

運行結果:

有牛奶有咖啡
拿鐵咖啡很好喝

aaa

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章