Domanda

Invece di passare molti argomenti di un metodo, avevo incapsulamento in un argomento in oggetto.

nota:semplicata per la demo
alt text

Per un caso del genere, quale sarebbe preferibile?

• Creare una classe e nome come InventorySaveArgs?
-- o --
• Creare una classe nidificata e nome come SaveArgs?

E vuoi anche spiegare perché uno dovrebbe scegliere l'uno o l'altro?

[MODIFICA]:Che tipo di argomento sarà utilizzato in altro, degli assiemi.

lato domanda:Solo per curiosità, se c'è un modello di nome per l'incapsulamento di parametri multipli per un singolo oggetto a caso.

[AGGIORNAMENTO]: Trova Annidato Tipo Di Linee Guida Per L'Utilizzo su MSDN
InventorySaveArgs dovrebbe essere disponibile da un altro assembly, quindi vado con una classe regolare.

È stato utile?

Soluzione

IIRC .NET Linee guida per la Progettazione sono abbastanza chiare su questo punto non ci dovrebbero essere pubblici i tipi nidificati.

Altri suggerimenti

Vorrei il nome InventorySaveArgs solo nel caso in cui si desidera rendere il tipo di disponibile per altri tipi di utilizzo.Se è il nome InventorySaveArgs dall'inizio quindi si avrà un nome significativo, in tutti i contesti, se hai bisogno di effettuare il refactoring.

Io sceglierei il primo, creare una classe esterna e il nome InventorySaveArgs.Se la classe è utilizzato un metodo pubblico, l'unico argomento per cui al di fuori della classe è spazio dei nomi di inquinamento.

Avendo la classe interna è francamente fastidioso in C#, perché si deve sempre precedere il nome del tipo con il nome della classe.Come detto, una volta che si pubblica l'unica motivazione per donig questo è la riduzione dello spazio dei nomi di inquinamento.Ma se il vostro spazio è così grande che il InventorySaveArgs classe sta facendo troppo grande probabilmente avete bisogno di rompere il vostro spazio dei nomi comunque.

L'unico motivo per incapsulare i parametri multipli per un singolo oggetto ho mai sentito parlare di un refactoring modello dettagliato di Martin Fowler

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top