我在我的应用程序中实现了一个存储库模式,在我的一些控制器中,我使用了各种不同的存储库。 (没有实施IoC)
UsersRepository Users;
OtherRepository Other;
Other1Repository Other1;
public HomeController()
{
this.Users = new UsersRepository();
this.Other = new OtherRepository();
this.Other1 = new Other1Repository();
}
为了避免将来出现膨胀控制器构造函数的问题,我创建了一个包装类,它包含了作为类对象的所有存储库,我在控制器构造函数中调用了该类的单个实例。
public class Repositories
{
UsersRepository Users;
OtherRepository Other;
Other1Repository Other1;
public Repositores()
{
this.Users = new UsersRepository();
this.Other = new OtherRepository();
this.Other1 = new Other1Repository();
}
}
在控制器中:
Repositories Reps;
public HomeController()
{
this.Reps= new Repositories();
}
当应用程序预计会增长时,这会影响我的应用程序现在还是将来的性能。
每个存储库都创建自己的DataContext / Entities,因此对于10个存储库,即10个不同的DataContexts / Entities。
DataContext / Entitie是一个昂贵的对象来创建如此庞大的数字吗?
答案 0 :(得分:3)
最好不要在使用它们时创建存储库,而不是在构造函数中创建存储库。
private UsersRepository _usersRepository;
private UsersRepository UsersRepository
{
get
{
if(_usersRepository == null)
{
_usersRepository = new UsersRepository();
}
return _usersRepository;
}
}
然后使用属性而不是字段进行访问。