IoC, DI, etc
От: Abyx Россия  
Дата: 31.05.11 12:09
Оценка:
как лучше
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;
};

?
In Zen We Trust
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.