как лучше
class Foo
{
public:
Foo(ILog& log, ICfg& cfg, IGUI& gui) : log(log), cfg(cfg), gui(gui) {}
void do_some()
{
if(cfg.flag)
{
log.write("somethig update begin");
gui.update_some();
log.write("somethig was updated");
}
}
private:
ILog& log;
ICfg& cfg;
IGUI& gui;
};
или
class Foo
{
public:
Foo(IComponents& comps) : comps(comps) {}
void do_some()
{
if(comps.get_cfg().flag)
{
ILog& log = comps.get_log();
log.write("somethig update begin");
comps.get_gui().update_some();
log.write("somethig was updated");
}
}
private:
IComponents& comps;
};
?