Я начал разрабатывать детали довольно большой системы и задавался вопросом, каким будет лучший способ использования репозиториев.Инъекция экземпляра хранилища в класс
Какой метод будет лучше:
static void Main(string[] args)
{
var dataRepository = new DataRepository();
var classA = new ClassA(dataRepository);
classA.Save();
}
public interface IDataRepository
{
void Save(ClassA myInstance);
}
public class DataRepository : IDataRepository
{
public void Save(ClassA myInstance)
{
//Do some stuff
}
}
public class ClassA
{
private IDataRepository _dataRepository;
public ClassA(IDataRepository dataRepository)
{
_dataRepository = dataRepository;
}
public void Save()
{
_dataRepository.Save(this);
}
}
Или я должен делать:
static void Main(string[] args)
{
var dataRepository = new DataRepository();
var classB = new ClassB();
dataRepository.Save(classB);
}
public interface IDataRepository
{
void Save(ClassB myInstance);
}
public class DataRepository : IDataRepository
{
public void Save(ClassB myInstance)
{
//Do some stuff
}
}
public class ClassB
{
//some stuff
}
Или есть другой способ, которым я мог бы это более элегантно?
Если вы хотите чистоты, тогда вы создаете класс UOW и передаете в него репозиторий. Какую орму вы планируете использовать? –
Это, наверное, будет Dapper – Draco
Все, что я сказал бы, это только ввести что-то, когда есть настоящая потребность в нем –