Prendi il seguente esempio:
public interface ISerialRVD
{
RouteValueDictionary ToRVD();
}
public interface IViewModel : ISerialRVD // Here?
{
Int32 Page { get; set; }
String Action { get; set; }
}
public class myViewModel : IViewModel, ISerialRVD // Or Here?
{
}
Capisco che se faccio IViewModel
eredita ISerialRVD
che sta forzando tutti coloro che implementano IViewModel
ad implementare ISerialRVD
ma dovrei fare solo : IViewModel
o : IViewModel, ISerialRVD
sulla classe che implementa IViewModel
?
A mia conoscenza ripetere la parte di ISerialRVD
non fa male nulla, e voglio metterlo lì per rendere più chiaro l'implementazione di quell'interfaccia, ma se dovessi avere molte più interfacce diventerebbe abbastanza confuso. Mi sbaglio?
C'è un modo ragionevole di affrontare questo? Da una parte sento che dovrebbe essere prolisso e dirti cosa stai implementando, ma d'altra parte dovrebbe essere inferocibile dall'interfaccia stessa. Tutti gli IViewModels implementano ISerialRVD.