抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一个接口,用于创建一系列相关或相互依赖的对象,而不需要指定其具体的类。在这个模式中,有一个抽象工厂接口,每个具体工厂子类都实现了这个接口,用于创建一组相关的对象。
内容:定义一个工厂类接口,让工厂子类来创建一系列相关或相互依赖 的对象。
相比工厂方法模式,抽象工厂模式中的每个具体工厂都生产一套产品。
from abc import ABC, abstractmethod
# 定义支付方式的抽象基类
class PaymentMethod(ABC):
@abstractmethod
def pay(self, amount):
pass
# 实现信用卡支付类
class CreditCardPayment(PaymentMethod):
def pay(self, amount):
print(f"使用信用卡支付 ${amount}")
# 实现支付宝支付类
class AlipayPayment(PaymentMethod):
def pay(self, amount):
print(f"使用支付宝支付 ${amount}")
# 定义支付方式工厂的抽象基类
class PaymentFactory(ABC):
@abstractmethod
def create_payment_method(self):
pass
# 实现信用卡支付工厂
class CreditCardPaymentFactory(PaymentFactory):
def create_payment_method(self):
return CreditCardPayment()
# 实现支付宝支付工厂
class AlipayPaymentFactory(PaymentFactory):
def create_payment_method(self):
return AlipayPayment()
# 客户端代码
if __name__ == "__main__":
# 创建信用卡支付工厂
credit_card_factory = CreditCardPaymentFactory()
# 使用信用卡支付
credit_card_payment = credit_card_factory.create_payment_method()
credit_card_payment.pay(100.0)
# 创建支付宝支付工厂
alipay_factory = AlipayPaymentFactory()
# 使用支付宝支付
alipay_payment = alipay_factory.create_payment_method()
alipay_payment.pay(50.0)