根据给定的所有权策略审查这个生成的工单复制器,找出 4 类不同风险。
复制工单时,应保留可变步骤之间的别名与循环,共享只读目录,创建新锁,并且只允许调用方修改工单 ID。
Python
import copy
import threading
class WorkOrder:
def __init__(self, order_id, steps, catalog):
self.order_id = order_id
self.steps = steps
self.catalog = catalog
self.lock = threading.Lock()
def __deepcopy__(self, memo):
clone = type(self)(
self.order_id,
[copy.deepcopy(step) for step in self.steps],
copy.deepcopy(self.catalog, memo),
)
clone.lock = copy.deepcopy(self.lock, memo)
return clone
def duplicate_order(template, changes):
clone = copy.deepcopy(template)
clone.__dict__.update(changes)
return clone
生成代码仅作示例,不代表任何特定模型