抽象工厂模式

抽象工厂模式(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)

results matching ""

    No results matching ""