工厂模式
工厂方法模式(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)