工厂模式有三种模式:
简单工厂模式:定义一个创建对象接口,通过参数来决定创建哪个类的实例
工厂方法模式:定义一个创建对象接口,让子类来决定创建哪个类的实例,工厂方法使一个类的实例化延迟到到其子类中
抽象工厂模式:提供一些列相关或相互依赖的对象接口,而指定他们的具体类
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