Информация об изменениях

Сообщение Re[6]: Практика использования std::unique_ptr std::call_once от 03.12.2015 8:47

Изменено 10.12.2015 1:05 kaa.python

Здравствуйте, antropolog, Вы писали:

A>Здравствуйте, xobotik, Вы писали:


X>>КО? И каждый раз при записи в лог создавать экземпляр класса и вызывать функцию?

X>>Вроде написал сценарий использования или напрасно ?

A>зачем все эти извращения с недосинглтонами, гонками и прочей ахинеей, когда можно сделать просто:


A>
A>//loggger.h
A>//Интерфейс лога, подключается там, где нужно писать в лог
A>log(severety, message);
A>


A>
A>//logger_factory.h
A>//Интерфейс фабрики логгера, подключается только в одном файле - в main.cpp
A>initLog(filename)
A>deinitLog();
A>


A>
A>//logger.cpp
A>//Имплементация логгера
A>#include "loggger.h"
A>#include "logger_factory.h"


A>class Log {
A>  open(filename);
A>  close();
A>  writeToLog(severety, message);
A>};

A>Log global_log;

A>initLog(filename) {
A>  global_log.init(filename);
A>}

A>deinitLog(
A>  global_log.close();
A>}

A>log(severity, message) {
A>  global_log.writeToLog(severity, message);
A>}
A>


A>и наконец main


A>
A>#include "logger_factory.h"
A>main() {
A>  initLog( get_new_log_name() );
A>  ....
A>  deinitLog();
A>}
A>


A>кому нужен лог — подключает logger.h и пишет в лог. Логгер инициализируется один раз явно в main. Код понятен даже ребёнку. Работает стабильно. Ошибиться очень тяжело. Повторяю вопрос — "Зачем делать через ж-у то, что можно сделать прямо и очевидным образом?"


Сделать можно, только использовать его могут на стороне через ж-у и не очевидным способом. Поэтому хотелось сделать гарантированную разовую инициализацию.
Re[6]: Практика использования std::unique_ptr std::call_once
Здравствуйте, antropolog, Вы писали:

A>кому нужен лог — подключает logger.h и пишет в лог. Логгер инициализируется один раз явно в main. Код понятен даже ребёнку. Работает стабильно. Ошибиться очень тяжело. Повторяю вопрос — "Зачем делать через ж-у то, что можно сделать прямо и очевидным образом?"


Сделать можно, только использовать его могут на стороне через ж-у и не очевидным способом. Поэтому хотелось сделать гарантированную разовую инициализацию.