管理大型应用程序配置的最佳做法

时间:2019-05-07 15:20:21

标签: c++ design-patterns

说我正在构建一个大型服务MyService,其中包含各种SubServices,它们可以在多线程上下文中执行操作。像这样用C ++设计:

class MyService : public MyServiceInterface{
public:
    // Some public methods.
private:
    // Some private methods.

    // Some sub services. Assume that these are dependency injected.
    std::shared_ptr<SubServiceA> a;
    std::shared_ptr<SubServiceB> b;
    std::shared_ptr<SubServiceC> c;

MyService可通过用户定义的文件进行配置,我们将其解析为数据结构MyServiceConfig。此配置不是只读的,应用程序可以在操作过程中对其进行编辑。假设我们已经准备好所有并发原语来管理任何访问。

我的问题是-如果我所有的SubServices都不需要此配置的排他部分,将std::shared_ptr<MyServiceConfig>传递给任何SubService的好习惯吗?如果不需要将整个配置公开给每个系统,这对我来说似乎很奇怪。对此有多种解决方案(如果所需配置的子集很小,则传递各个部分;在MyServiceConfig中维护对已知SubServices执行逻辑划分的内部结构),但是我无法清楚地看到什么最好。是否存在用于配置大型服务及其子服务的最佳实践模式?

0 个答案:

没有答案