MVC、Nhibernate、IOC コンテナーを使用してエンタープライズ アプリケーションに取り組んでいます。
私は 3 つの層:
DAL - Nhibernate データ リポジトリ
public class CustomerRepository : Repository<int>,ICustomerRepository
{
public CustomerRepository(IUnitOfWork unitOfWork)
: base(unitOfWork)
{
}
}
BLL - ビジネス層
public class CustomerManager
{
private readonly ICustomerRepository _repository;
public CustomerManager(ICustomerRepository repository)
{
_repository = repository;
}
public IList<Customer> GetAll()
{
return _repository.GetAll<Customer>();
}
}
プレゼンテーション - MVC コントローラー
private readonly IUnitOfWork _unitOfWork;
private readonly ICustomerRepository _repository;
private readonly CustomerManager _manager;
public HomeController(IUnitOfWork unitOfWork, ICustomerRepository repository)
{
_unitOfWork = unitOfWork;
_repository = repository;
_manager = new CustomerManager(_repository);
}
IOC コンテナーを使用して、作業単位と CustomerRepository オブジェクトを登録しています。IOC コンテナは正常に動作しています。
このソリューションについて私を悩ませているのは、コントローラーに CustomerRepository 参照があることです。このアーキテクチャは問題ありませんか、それともこれを実装するためのより良い方法がありますか?