Я не уверен, какой из этих двух «шаблонов» является лучшим. В настоящее время я использую опцию A (совместно с провайдером для реализации персистентности), но теперь я ошибаюсь в направлении B, особенно в свете модульных тестов, которые могут использовать модель «внедрения зависимости».
Вариант A:
class ClassA
{
ClassA() { }
Save();
static List<ClassA> GetClassAs();
}
Вариант B:
class ClassA
{
ClassA() { }
Save();
}
class ClassARepository
{
ClassARepository() { }
List<ClassA> GetClassAs();
}
Я думаю, что я спрашиваю, является ли хорошей практикой для класса выставлять статические методы, которые возвращают коллекции своих экземпляров?
Редактировать
Похоже, существует общее мнение, что вариант B является лучшим выбором. Похоже, у меня впереди много рефакторинга: S