我有一系列的類,每個類都有一些依賴於它們的角色的依賴關係。這些依賴項被注入到構造函數中。一個例子是:注入具有接口屬性和設計原則的接口
public class UserViewModel
{
//...
public UserViewModel(IDataService dataService,
INotificationService notificationService,
IDialogService dialogService,
INavigationService navigationService)
{
this.DataService = dataService;
this.NotificationService = notificationService;
this.DialogService = dialogService;
this.NavigationService = navigationService;
}
}
正如你所看到的,有幾個參數來設置。我可以寫如下所示的界面:
public interface IInteractionService
{
public INotificationService NotificationService { get; set; }
public IDialogService DialogService { get; set; }
public INavigationService { get; set; }
}
,並通過注入InteractionService落實到UserViewModel的構造在一塊:
public UserViewModel(IDataService dataService,
IInteractionService interactionService) {}
,並用它喜歡:
this.InteractionService.NotificationService.Publish(message);
是在設計模式/原則方面使用保持接口屬性的交互接口有什麼問題?還是有更好的方法來看待它?
感謝您的任何意見...
沒有意識到檢查空值是不必要的,謝謝你。所以你認爲應該保留它的第一個片段 - 分別注入每項服務? – Alyce
是的。如果這三項服務是獨立的,不要將它們結合在一起。 –