Перегрузка функции экземпляра класса Singleton - PullRequest
0 голосов
/ 03 января 2012

Это лучший способ перегрузить функцию экземпляра для приема параметров. В следующем фрагменте кода я передаю имя файла журнала. Хорошо ли так делать?

Logger.GetIntance ( "Temp.log");

Logger.GetIntance (). WriteLog ( "Программа Start ");

Есть ли лучший способ достичь той же цели?

Ответы [ 2 ]

1 голос
/ 03 января 2012

getInstance() не является методом экземпляра. Это статический метод. Если Logger является одноэлементным, то у вас не может быть логически двух разных методов для получения одного и того же экземпляра.

Если вам нужно инициализировать синглтон, то делайте это в самом классе. В любом случае он будет инициализирован только в одном месте, так что лучше быть внутри.

Но регистраторы редко бывают одиночными, и Logger.getInstance(..) обычно возвращает новый экземпляр. Так что это нормально, перегрузить его.

0 голосов
/ 03 января 2012

Если вы хотите следовать шаблонам проектирования, я бы посоветовал вам инициализировать регистратор с именем файла внутри класса. Если имя файла не было известно в течение этого времени (оно меняется), тогда возникает вопрос, нужен ли вам вообще синглтон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...