提交最新代码。 代码动态执行存在一些问题,无法执行。
This commit is contained in:
+38
-1
@@ -7,7 +7,7 @@ from abc import ABC, abstractmethod
|
||||
import json
|
||||
|
||||
|
||||
class ProjectTookiIt(ABC):
|
||||
class ProjectToolkit(ABC):
|
||||
"""
|
||||
项目类(抽象基类)
|
||||
描述: 代表整个项目结构的顶层容器
|
||||
@@ -576,3 +576,40 @@ class Fee:
|
||||
self.其他费 = None # xsd:string (可选)
|
||||
self.施工费 = None # xsd:string (可选)
|
||||
self.单位投资 = None # xsd:string (可选)
|
||||
|
||||
class ProjectBuilder:
|
||||
# 存储注册的工具类
|
||||
_registry = None
|
||||
_config = {}
|
||||
|
||||
"""项目工具工厂类"""
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def register(toolkit_class: type, config: dict):
|
||||
"""
|
||||
注册工具类到工厂
|
||||
|
||||
参数:
|
||||
toolkit_class: 继承自ProjectToolkit的具体工具类
|
||||
"""
|
||||
if not issubclass(toolkit_class, ProjectToolkit):
|
||||
raise TypeError(f"{toolkit_class.__name__} 必须继承自 ProjectToolkit")
|
||||
|
||||
_config = config
|
||||
_registry = toolkit_class
|
||||
|
||||
def build(self) -> ProjectToolkit:
|
||||
"""
|
||||
创建工具实例
|
||||
|
||||
参数:
|
||||
|
||||
返回:
|
||||
实例化的工具对象
|
||||
"""
|
||||
if _registry is None:
|
||||
raise KeyError(f"未注册的类,请先注册类")
|
||||
|
||||
return _registry(_config)
|
||||
|
||||
Reference in New Issue
Block a user