在过去的几周里,这个问题一直困扰着我。我目前的实现有效,但我很想知道是否有“好方法”来做到这一点。我是设计模式的新手,所以这可能是一个愚蠢的问题。
简单地说,你有:
- 提供接口的对象原型(我们称之为抽象内核);
- 以各种方式实现上述接口的特定内核;
- 一个具体的内核工厂;
- 另一个对象 Foo,它存储指向抽象内核的指针,由 Factory 返回。
我的问题是这个;特定的内核实现可能会定义自己的一组参数,这些参数因内核而异。Foo 使用内核做一些处理,但是这个处理最终取决于这些参数,我不知道如何以一种好的方式配置它们。
我不想去抽象工厂,并在构建之前配置具体工厂,因为这对我来说似乎是错误的;有参数的不是工厂,而是内核。
但另一方面,即使我将 Foo 中的内核指针设置为 public,我也无法访问底层内核的参数,因为它们不是原型接口的一部分......我敢肯定其他人有这个之前的问题,也许有一个我看不到的简单解决方案。:S
提前致谢!
注意:在我当前的实现中,没有内核工厂。我将内核具体类型作为Foo的模板,并将内核设置为公共成员,这样我就可以在声明之后和开始处理之前配置内核。