Tôi đang nhìn vào bộ điều khiển trong trang web của tôi, và hầu hết các nhà thầu của họ trông như thế này:Củng cố ASP.NET MVC Controller Dependencies (StructureMap)
public SomeController(
IServiceOne serviceOne,
IServiceTwo serviceTwo,
ILoggingService loggingService,
IGeospatialService geoSpatialService)
{
// copy to class variables.
}
Nói cách khác, đó là rất nhiều lông và làm cho refactoring khó khăn. Một số bộ điều khiển có khoảng 8 phụ thuộc.
Có cách nào tôi có thể bằng cách nào đó "nhóm" những phụ thuộc này vào một trong nhiều nhóm hơn không?
Ví dụ, ILoggingService
là bắt buộc trong mọi bộ điều khiển, IGeospatialService
là bắt buộc bởi bộ điều khiển làm công cụ không gian và IServiceOne
và IServiceTwo
chỉ bắt buộc trong một số trường hợp nhất định.
Tôi muốn nhìn thấy một cái gì đó như thế này:
public SomeController(
ICoreServicesGroup coreGroup,
ISomeNameForServicesGroup serviceGroup)
{
// copy to class variables.
}
Tôi nghĩ nó sẽ là tốt để giới thiệu một số kỹ thuật OO, chẳng hạn như có một "cơ sở" class depedency, trong đó có một ILoggingService
trong nó bảo vệ ctor. Sau đó, bạn có thể có một phụ thuộc con khác mà thừa kế, v.v.
Có ai đã làm điều này trước đây không? Đây có phải là thứ mà StructureMap có thể làm cho tôi hay chỉ đơn giản là tôi đang cuộn mã cơ bản của riêng mình?
tôi sẽ trả lời nhưng tôi sẽ chỉ nói một cái gì đó như thế này: http://stackoverflow.com/a/6026515/373378 –