工厂模式

工厂方法模式(Factory Method 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 ""