Статический класс или синглтон

209
24 июня 2017, 09:46

Добрый день.
Есть, например, класс:

public class ClassX 
{
    public string S1 = "s1";
    public string S2 = "s2";
    ...
}

Поля данного класса во время выполнения программы изменяются. Поля данного класса используются различными объекты. Читал, что для изменяемых данных не следует использовать статические классы.

Как лучше реализовать? С применением синглтон паттерна? Мне показалось, что использовать синглтон будет слишком "громоздко" для такого простого класса...

Answer 1

Лучше не использовать ни статику, ни классический синглтон. И у статики, и у синглтона есть один общий недостаток - они достаточно жёстко привязывают к себе зависящий от них код. Т.е. юнит тесты на них вы не напишете, в отдельный проект нормально не перенесёте, прорефакторить еще как-то не сможете.

Выделите для "статического" класса обычный нестатический интерфейс, напишите для него обычную нестатическую реализацию. И вставьте ее в качестве зависимости в код используя любой IoC-контейнер (IServiceCollection для ASP.NET Core, Autofac, StructureMap, любой другой). И предоставьте контроль за единственностью экземпляра контейнеру.

READ ALSO
Перстался запускатся проект на Net Core

Перстался запускатся проект на Net Core

При поытке запустить NetCore приложение из VS стала появлятся такая ошибка:

216
SendInput для Alt + NumPad*

SendInput для Alt + NumPad*

ЗдравствуйтеХотел попросить помощи в следующем вопросе: как эмулировать ввод Alt + NumPad* ?

200
Регулярное выражение для url'ов

Регулярное выражение для url'ов

Есть регулярка для урлов:

382
Взаимодействие компонентов в React

Взаимодействие компонентов в React

Есть форма (в ней input и button), есть div(компонент Posts) внизу нее, где должны отображаться элементы, которые будут добавляться при нажатии на кнопку

435