В течение последнего года или около того я придерживался идеи, что если метод может быть статическим, сделать его статичным, поскольку это может повысить производительность, и поэтому я получил некоторые статические классы в своих приложениях.
С тех пор я узнал, что выигрыш в производительности не всегда достаточно велик, чтобы его стоить, а также различие в том, что методы, которые можно сделать статичными, возможно, не должны быть с точки зрения проектирования, если они более специфичны для объект, а не тип - связанный вопрос
В качестве примера я недавно создал класс FileRepository, который реализует шаблон хранилища для нашего собственного класса File (например, файлы импорта). Этот класс не является статичным, и объект хранилища должен быть сначала создан, прежде чем к нему можно будет получить доступ.
Моя проблема с этим, все мои старые статические вызовы, теперь состоят из 2 строк (если я не могу повторно использовать объект в локальной области видимости). У объекта репозитория (пока что) нет состояния, поскольку он использует доступ к базе данных через статическую переменную потока.
Мой вопрос: каково мнение людей о наличии у класса статического свойства потока в классе, где метод доступа get инициализирует объект при первом вызове? Насколько я понимаю, это по-прежнему позволит избежать ловушек статических классов, таких как невозможность реализации универсальной функциональности через интерфейсы, но все же обеспечит простоту однострочных обращений к объекту хранилища?
Просто пытаюсь скорректировать мои практики и образ мыслей к лучшему.