构建器模式 - 配置文件读数
Builder pattern - configuration file reading
我面临着设计问题。我想用构建器模式将构建对象分开,但问题是必须从配置文件中构建对象。
到目前为止,我已经决定,由配置创建的所有对象都将存储在DataContext类(所有对象的容器)中,因为这些对象状态将从变速箱中更新(因此将它们放在一个地方更容易)。
我正在使用外部库从XML文件读取 - 我的问题是如何隐藏它 - 将其注入ConcreteBuilder类是更好的吗?我必须注意,建筑商类必须创建很多对象,最后 - 彼此之间的连接。
基类看起来像:
/*
* IDataContextBuilder
* base class for building data context object
* and sub obejcts
*/
class IDataContextBuilder {
public:
/*
* GetResult()
* returns result of building process
*/
virtual DataContext * GetResult () = 0;
/*
* Virtual destructor
*/
virtual ~IDataContextBuilder() { }
};
class ConcreteDataContextBuilder {
public:
ConcreteDataContextBuilder(pugi::xml_node & rootNode);
DataContext * GetResult ();
}
如何正确实施?从配置文件中构建类的更好模式可能是更好的模式?
我没有看到这个问题,但是也许您可以注入另一个接收特定构建器,加载配置文件的'导演'类,并产生调用相应构建器的对象 - 子类。
我的意思是:
class DataContextDirector {
public:
void SetBuilder(IDataContextBuilder* builder);
void SetConfig(const std::string& configFilePath); // or whatever
DataContext* ProduceObject() {
// pseudo-code here:
// myBuilder->setup(xmlNodeOfConfig);
// return myBuilder->GetResult();
}
};
相关文章:
- 无法找到/读取配置文件.conf-FileIOException
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 一种在C++中读取TXT配置文件的简单方法
- FFMPEG配置文件级别id大小无效
- 配置文件解析器仅返回以前的值
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- Boost program_options将多个配置文件解析结果存储到一个parsed_options中
- Windows 后台服务(系统配置文件)无法使用 C++ 访问 win 10 上的用户 appData 文件夹?
- 我应该如何获取配置文件的绝对路径与 Windows .exe一起发布?
- 文件模式标志"ios::app"是否用于删除文件(如果文件已存在)?
- JPG-如何从ICC配置文件部分APP2读取/提取数据
- 检测到 Conan 配置文件设置与 CMake 之间的编译器版本不匹配
- boost::p rogram_options 配置文件格式
- 如何在Boost::program_options配置文件中为非字符串的自定义选项值类型处理空格
- 如何在 Boost Program_Options 中使用命令行和分层配置文件的选项
- 如何将不可编译的配置文件添加到QT工程中?
- OpenGL不能在核心配置文件中使用glVertexAttrib进行绘制
- 错误 VSP1011:无法获取调试信息.与 /配置文件链接器开关链接
- 构建器模式 - 配置文件读数
- 从配置文件中动态加载正则表达式模式