Теперь я пытаюсь избавиться от объектов бога из кода моего сервера.
В начале разработки моего сервера я решил сделать объекты контейнеров World
и const
одноэлементными.
Но мой сервер многопоточный, и синглтоны не являются хорошим решением.
Так что мне это удалось, и я переместил эти классы как экземпляр класса Core
.
Например:
class Core
{
...
private:
World world;
CExpTable exptable;
...
};
Core
при новом соединении дает ссылки на объект для класса Session
.
new Session(io_pool.getService(), world, exptable ...);
Мне нужен только один экземпляр этого объекта. Но объект бога — это плохой шаблон проектирования, поэтому я хотел бы спросить, как я могу перепроектировать этот объект, чтобы избежать его, и хорош ли дизайн одноэлементного шаблона?