私には一連のクラスがあり、それぞれの役割に応じていくつかの依存関係があります。これらの依存関係はコンストラクターに注入されています。例は次のとおりです。
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のコンストラクターに1つにまとめて渡します。
public UserViewModel(IDataService dataService,
IInteractionService interactionService) {}
次のように使用します。
this.InteractionService.NotificationService.Publish(message);
デザインパターン/原則の観点から、インターフェイスプロパティを保持するインタラクションインターフェイスの使用に問題はありますか?それともそれを見るより良い方法はありますか?
アドバイスありがとうございます...