python实现简单工厂模式

本文介绍了使用Python的抽象基类(ABC)和工厂模式来创建数学运算类的方法。通过定义一个基础运算类OperationBase,并继承自abc.ABCMeta,实现了加法和减法类的抽象方法calculate。同时,通过OperationFactory工厂类,根据操作符动态返回对应的加法或减法类实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#基础
import abc
class OperationBase(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def __init__(self, num_1, num_2):
        self.__num1 = num_1
        self.__num2 = num_2

    @property
    def num_1(self):
        return self.__num1

    @property
    def num_2(self):
        return self.__num2

    @abc.abstractmethod
    def calculate(self):
        pass

#加法类

from operation.operation_base import OperationBase
class OperationAdd(OperationBase):
    def __init__(self, num1, num2):
        super().__init__(num1, num2)

    def calculate(self):
        return super().num_1 + super().num_2

#减法类

from operation.operation_base import OperationBase
class OperationSub(OperationBase):
    def __init__(self, num1, num2):
        super().__init__(num1, num2)

    def calculate(self):
        return super().num_1 - super().num_2

#工厂类
from operation.operation_add import OperationAdd
from operation.operation_sub import OperationSub
class OperationFactory(object):
    dics = {'+': OperationAdd, '-': OperationSub}

    @classmethod
    def get_operation(cls, operator):
        if operator in cls.dics:
            return cls.dics.get(operator)
        else:
            raise Exception('该算法未实现')
#方法调用
from operation.operation_factory import OperationFactory

operation = OperationFactory.get_operation('-')(1,2)
print(operation.calculate())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值