工厂模式在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象
定义:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行
意义:为了解决接口选择的问题
关键:创建过程在子类中进行
代码实现
class Car:
@abstractmethod
def driver(self):
pass
class Benz(Car):
def driver(self):
print("This is a Benz car~!")
class BMW(Car):
def driver(self):
print("This is a BMW car~!")
class CarFactory():
@staticmethod
def get_car(car_name):
if car_name == "Benz":
return Benz()
elif car_name == "BMW":
return BMW()
return None