Nhìn vào điều khiển của tôi (Tôi đang sử dụng Dependency Injection để phụ thuộc quản lý):Bộ điều khiển .NET MVC với nhiều Vùng lưu trữ và Dịch vụ?
public RoleController(IRoleRepository roleRepository, ISiteRepository siteRepository, IUserRepository userRepository, IDbContext dbContext)
{
_roleRepository = roleRepository;
_siteRepository = siteRepository;
_userRepository = userRepository;
_dbContext = dbContext;
}
Có một lớp học với nhiều phụ thuộc là một mùi mã? Đúng?
Nhưng, trong ví dụ của tôi, tôi cần liên kết Users
và Sites
trong một Role
, sau đó tôi cần những phụ thuộc này để thực hiện liên kết này.
Một số người trong danh sách gửi thư Tôi được cho biết rằng có quá nhiều phụ thuộc là dấu hiệu cho thấy có điều gì đó có thể sai. Nhưng tôi không thấy cách nào khác. Tôi phân chia trách nhiệm của mình, có điều gì đó trong tình huống đó tôi không biết cách đối xử? Có gì sai không?
Cập nhật:
Tôi cần Repositories và DbContext vì DbContext là UnitOfWork tôi, kho không lưu.
Ví dụ này là CRUD đơn giản với một số chức năng khác như Liên kết trong Chế độ xem có GRID.
Cập nhật 2:
Tôi đang sử dụng một kiến trúc nơi UI lớp của tôi là MVC.
Thông thường tôi sẽ chỉ tạo kho lưu trữ cho các nguồn tổng hợp, không phải mọi thực thể. Tôi không biết tên miền của bạn, nhưng ruột của tôi cho tôi biết bạn có quá nhiều kho. Ngoài ra, tại sao bạn cần các kho lưu trữ và dbcontext? Cuối cùng, tôi thường thích thực hiện các hoạt động nghiệp vụ kiểu "dàn nhạc" trong một 'Dịch vụ', và để thỏa thuận dịch vụ với các kho lưu trữ, vv. Sự phụ thuộc của bộ điều khiển sau đó chỉ trở thành dịch vụ. – Brook
@Brook xem cập nhật. –
có thể trùng lặp của [Trong asp.net-mvc, là có một cách thanh lịch hơn bằng cách sử dụng IOC để tiêm kho lưu trữ mutiple vào một bộ điều khiển?] (Http://stackoverflow.com/questions/7311623/in-asp-net-mvc- is-there-a-more-elegant-way-sử dụng-ioc-to-inject-mutiple-repositor) – Omar