#c_sharp #ооп #static #singleton
Добрый день. Есть, например, класс: public class ClassX { public string S1 = "s1"; public string S2 = "s2"; ... } Поля данного класса во время выполнения программы изменяются. Поля данного класса используются различными объекты. Читал, что для изменяемых данных не следует использовать статические классы. Как лучше реализовать? С применением синглтон паттерна? Мне показалось, что использовать синглтон будет слишком "громоздко" для такого простого класса...
Ответы
Ответ 1
Лучше не использовать ни статику, ни классический синглтон. И у статики, и у синглтона есть один общий недостаток - они достаточно жёстко привязывают к себе зависящий от них код. Т.е. юнит тесты на них вы не напишете, в отдельный проект нормально не перенесёте, прорефакторить еще как-то не сможете. Выделите для "статического" класса обычный нестатический интерфейс, напишите для него обычную нестатическую реализацию. И вставьте ее в качестве зависимости в код используя любой IoC-контейнер (IServiceCollection для ASP.NET Core, Autofac, StructureMap, любой другой). И предоставьте контроль за единственностью экземпляра контейнеру.
Комментариев нет:
Отправить комментарий