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