我们说我有A类(客户),B,C。
B类需要创建一个C类实例,然后对该实例进行一些操作。
但是,在运行B类之后,A类需要对该实例进行一些清理,但是它无法为B创建C类作为B,因为它在创建期间需要传递给C的某些配置选项。 / p>
这样做最干净的模式是什么?
我正在考虑让A创建一个工厂,然后B用其额外的参数调用make
。但是,这仍然不会授予对C实例的访问权限(返回C是不可行的。)
Class A
function do
factory = new CFactory
b.do(factory)
// get c from somewhere
c.doSomething
end
end
Class B
function do(factory)
c = factory.make(some, extra, args)
...
...
...
// Can not viablly return c or store a reference to it
end
end
Class C
function doSomething
end
end