[笔记]代码-抽象类与工厂模式py
Abstract: 记一下python实现的抽象类与工厂模式,还有调用的代码。
抽象类与注册功能
from abc import ABC, abstractmethod
class Processor(ABC):
_registry = {}
def __init_subclass__(cls, name: str, **kwargs):
super().__init_subclass__(**kwargs)
cls._registry[name] = cls
@classmethod
def create(cls, name: str) -> "Processor":
return cls._registry[name]()
@abstractmethod
def process(self, data: str) -> str:
pass
继承的子类
class OpcProcessor(Processor, name="opc"):
def process(self, data: str) -> str:
return f"[OPC] {data}"
class HttpProcessor(Processor, name="http"):
def process(self, data: str) -> str:
return f"[HTTP] {data}"
实现多态
用新的class来实现多态,隐藏class
class JobRunner:
def __init__(self, processor_name: str):
self.processor = Processor.create(processor_name)
def run(self, data: str) -> str:
return self.processor.process(data)
使用方式
runner = JobRunner("opc")
print(runner.run("temperature=36"))
Last modified on 2026-04-08