Convenzione di denominazione per classi che rappresentano diverse versioni della stessa cosa [chiuso]

-1

Immaginiamo di avere una classe astratta denominata ProtocolA che rappresenta le operazioni di base per lavorare con il protocollo A . Tale protocollo è in versione 1, ma nuove versioni sono previste in futuro. La versione 2 sta arrivando. Come dovrei nominare le classi che implementano quella classe astratta per ogni versione? ProtocolA1 e ProtocolA2 ?

Saluti.

    
posta NullOrEmpty 13.04.2014 - 16:30
fonte

2 risposte

1

Se non dovrai più supportare la versione originale, semplicemente sovrascrivi la classe e mantieni lo stesso nome.

Tuttavia, sospetto se fosse così semplice che non ti chiederei.

Sono un grande fan dei nomi inequivocabili. Le specifiche del protocollo hanno un identificativo univoco? Qualcosa come un numero RFC? Se è così, lo chiamerei qualcosa come ProtocolARfc2048 .

Eviterei un numero di versione interno alla tua applicazione, in quanto ciò potrebbe generare confusione.

    
risposta data 13.04.2014 - 16:40
fonte
0

Usa Factory (metodo factory o factory object) per accettare un numero di versione (preferibilmente enum, ma anche stringhe o numeri possono funzionare) e costruire la sottoclasse appropriata. In questo modo, la denominazione non avrà importanza, dal momento che non li utilizzerai mai direttamente nel codice.

Per quanto riguarda la denominazione, se la tua lingua ha lo spazio dei nomi puoi creare uno spazio dei nomi per ciascuna versione del protocollo e assegnare alle classi lo stesso nome in diversi spazi dei nomi.

    
risposta data 13.04.2014 - 17:26
fonte

Leggi altre domande sui tag