Quale è meglio: molte definizioni di classe nello stesso file o ogni definizione di classe in un file separato?

5

Quale è meglio: molte definizioni di classe nello stesso file o ogni definizione di classe in un file separato?

Esempi:

1) Molte classi nello stesso file. Dì, myManyClasses.cs :

namespace myPack
{
   class myClass1()
   {
   }
   class myClass2()
   {
   }
   class myClass3()
   {
   }
  . 
  . 
  .
}

2) Ogni classe in un file separato:

myClass1.cs

namespace myPack
{
   class myClass1()
   {
   }
}

myClass2.cs

 namespace myPack
 {
   class myClass2()
   {
   } 
 }

. . .

    
posta Adam Lear 11.03.2011 - 19:01
fonte

9 risposte

18

Naturalmente ogni classe in una pagina diversa. A meno che la classe non sia ridicolmente piccola o legata solo a una classe che è la classe principale nel file.

    
risposta data 11.03.2011 - 19:03
fonte
6

Conservo ogni classe in un singolo file perché

  • rende più facile da navigare in Esplora soluzioni
  • offre una granularità migliore quando si lavora con i sistemi di controllo della versione , specialmente quelli in cui si dispone di un meccanismo di blocco per la modifica dei file; devi bloccare solo il codice per la classe che stai modificando.
  • segue la convenzione più comune , rendendo più facile per i nuovi sviluppatori orientarsi

L'unica eccezione che faccio a questa regola è che a volte inserisco enum in un comune file Enums.cs , dato che in genere sono super piccoli, raramente aggiornati e non contengono alcuna logica. Facevo lo stesso con i delegati, ma dal momento che i delegati generici Func e Action sono arrivati, è estremamente raro che io definisca i miei delegati.

    
risposta data 11.03.2011 - 19:11
fonte
2

Questa domanda si adatta meglio al link

Per rispondere comunque, la maggior parte dei programmatori sembra concordare sul fatto che una classe per file sia la strada da percorrere. Sono d'accordo.

Se hai più classi in un file, stai rendendo più difficile trovare qualcosa in quel file.

    
risposta data 11.03.2011 - 19:03
fonte
2

Una classe per file.

Ha molti vantaggi in Visual Studio. Ad esempio, se cambi il nome del file, ti verrà chiesto di cambiare automaticamente il nome della classe.

Ad ogni modo, poiché siamo in un'era di programmazione in cui il refactoring è un'attività di tutti i giorni, una buona convenzione di denominazione e un membro dell'assemblaggio per file renderebbero le cose più facili da gestire se devi migliorare, modificare o rinnovare il codice sorgente. E può essere meno confuso per i neofiti dello sviluppo del progetto!

    
risposta data 11.03.2011 - 19:07
fonte
2

Una classe per pagina è migliore, ma a volte dove la classe è molto piccola e usata solo all'interno dello stesso file di classe, beh, penso che sia auto-esplicativa.

    
risposta data 11.03.2011 - 19:10
fonte
1

Preferisco di gran lunga avere una classe per file.

Il motivo è che posso localizzare i file di classe più facilmente in Esplora soluzioni . Non devo guardare la vista della classe per trovare la classe.

Inoltre, con la crescita della tua applicazione, è probabile che anche le classi crescano. Otterranno più proprietà e metodi. Quello che è iniziato come una piccola classe potrebbe evolversi in una che è abbastanza grande. A quel punto, sarebbe scomodo spostare il codice di classe in un file separato.

    
risposta data 11.03.2011 - 19:05
fonte
1

Preferisco strutturare il mio codice per evitare le dipendenze cicliche tra i file di origine. In generale, metto una singola classe in un file sorgente, ma se ho due o più classi strettamente accoppiate, le raccoglierò in un singolo file. Tuttavia, in tal caso sarei strongmente incline ad usare le classi interne, se possibile.

    
risposta data 12.03.2011 - 07:36
fonte
0

Le mie classi raramente rimangono abbastanza semplicemente da metterne molte nello stesso file, quindi in generale, vorrei andare con le classi in molti file.

    
risposta data 11.03.2011 - 19:03
fonte
0

Conservo in un file una classe o un'interfaccia è molto facile da trovare e abbinare classe per nome di file Uso ReSharper che mi aiuta a trovare e navigare tra le classi

    
risposta data 11.03.2011 - 19:03
fonte

Leggi altre domande sui tag