2016-03-31 13 views
7

Sto per avviare un nuovo sviluppo del mio progetto commerciale ASP.NET C# MVC che gestisce le candidature per gli eventi a cavallo in Australia.Utilizzo di interfacce C# per espandere l'applicazione esistente

Vorrei espanderlo ad altri tipi di eventi, ad esempio, corse automobilistiche, calcio, qualsiasi cosa. Al momento, è molto specifico per questo sport

Ho fatto ricerche su interfacce e altri approcci OOP, ma applicarlo al mondo reale è un po 'scoraggiante.

Questo è il mio piano di base:

public interface INomination 
{ 
    public void AddNomination(); 
    public void UpdateNomination(); 
    public void DeleteNomination(); 
} 

public BaseNomination 
{ 
    // Define properties 
} 

public HorseNomination : BaseNomination, INomination 
{ 
    // Horse nomination specific stuff, like specifying the horse 
    public bigint HorseID { get; set; } 
} 

Poi, in un NominationService, ho potuto chiamare questa

public void HandleNomination(INomination nomination) 
{ 
    nomination.Add(); 
} 

Dove la mia testa inizia a male è come distinguere tra una nomina che richiede l'utente deve specificare il cavallo per l'HorseNomination, o no, come CarNomination?

Ho bisogno di IHorseNomination, ICarNomination? In tal caso, come faccio, ad esempio, a gestirlo per rendere il tipo di View per l'input dell'utente?

+1

La classe 'BaseNomination' dovrebbe già contenere un' NominationID'. Dovrebbe essere utilizzabile in tutti i tipi di nomination. –

risposta

1

Come quello che ho capito dalla domanda è si è bloccato come si intende chiamare Nominations differenct vale a dire HorseNomination, CarNomination ecc

public void HandleNomination(INomination nomination) 
{ 
    nomination.Add(); 
} 

Cosa devi passare in questo parametro è l'oggetto della classe per la quale vuoi eseguire un'azione.

// If you want to perform actions from HorseNomination 
    HandleNomination(new HorseNomination()); 

    // If you want to perform actions from CarNomination 
    HandleNomination(new CarNomination()); 

Ma ricorda che per passare gli oggetti devi ereditare l'interfaccia per quella classe.

Spero di aver capito la tua domanda e ci ho provato un po 'per rispondere.

+0

Grazie Salman, è fantastico e puoi capire cosa intendi. – clayiam

+0

Il tizio del piacere segna questo come utile :) –

Problemi correlati