Ни.Вы должны использовать внедренный экземпляр зависимости.т.е. вы не строите предположение, что в вашем коде есть только один экземпляр.Вы просто создали один экземпляр.Таким образом, вы можете легко изменить свое программное обеспечение, чтобы использовать более одного экземпляра.
Основная идея здесь заключается в том, что вы берете банковский счет в качестве параметра в конструкторе ваших классов:
class MyClass
{
private readonly IBankAccount bankAccount;
public MyClass(IBankAccount bankAccount)
{
this.bankAccount=bankAccount;
}
}
Поскольку создание такого класса вручную может раздражать, если вам нужно передать много вещей, вы обычно используете инжектор зависимостей / контейнер IoC, чтобы сделать это за вас.
Следует использовать статические методыдля вспомогательных функций без побочных эффектов без состояния.Math
и Enumerable
имеют хорошие примеры для статических методов.
В общем, вам следует избегать глобального изменяемого состояния.И банковский счет явно изменчив.Здесь классический синглтон - меньшее зло (вы можете заменить реализацию для целей тестирования), но это все равно плохой выбор.