存储工厂实例

时间:2015-07-01 09:39:49

标签: design-patterns

我们说我有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

0 个答案:

没有答案