我想知道配置策略的最佳做法是什么 政策性设计。定义了策略的接口 由其主机类。然而,它没有定义如何 接口需要实现。因此,政策可能会 需要不同的配置参数。但我只想 将一个配置(对象)提供给主机类。该 下面的代码是我到目前为止所做的草稿,但是 我不是很满意,因为它不能保证 没有命名冲突,也没有封装 不同政策的配置成员。
class Policy1 {
template<class Config>
Policy1(Config cp1) {
/* Use policy1 config members */
}
};
class Policy2 {
template<class Config>
Policy2(Config cp2) {
/* Use policy2 config members */
}
};
template <class P1, class P2>
class Host {
template<class Config>
Host(Config c) : p1(P1(c)), p2(P2(c)) {...}
P1 p1;
P2 p2;
};
struct Config {
int configParam1; /* Used by policy 1 */
int configParam2; /* Used by policy 2 but might also
be called configParam1
*/
}
int main() {
Host<Policy1, Policy2> h(Config());
return 0;
}
如何防止配置对象中的名称冲突?有没有类似命名空间的机制?或者以某种方式更好地配置我的政策?