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