Наследование из соображений синглетона - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть singleton logger, который используется многими потоками во время выполнения для целей регистрации. Мне нужны разные типы, поэтому я решил переместить изменяемую часть в protected методы и наследовать от нее.

Есть ли что-то особенное с singleton классами в наследовании (каких-либо соображений, которые мы не имеем с обычными классами)?

1 Ответ

1 голос
/ 28 апреля 2011

Синглтоны должны быть запечатаны, точка.В противном случае на практике они могут не быть синглетонами.

Конечно, вы можете использовать контейнер IOC, такой как StructureMap, Autofac или Castle Windsor, для управления образом жизни вашего класса;тогда вам не нужно записывать его как синглтон, просто объявите его в контейнере IOC как синглтон.

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

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