Domanda

Diciamo che abbiamo il seguente file e la struttura [cartella] in un progetto con uno spazio dei nomi principale di MyNamespace :

  • [Entità]
    • Article.cs
    • Category.cs
  • [Interfacce]
    • IReviewable.cs
    • ISearchable.cs
  • Enumerations.cs

Secondo i suggerimenti di ReSharper, lo spazio dei nomi delle classi Article e Category dovrebbe essere MyNamespace.Entities , lo spazio dei nomi di IReviewable e ISearchable dovrebbero essere MyNamespace.Interfaces e lo spazio dei nomi per la classe Enumerations dovrebbe essere semplicemente MyNamespace .

Questo perché i suggerimenti di ReSharper si basano sulla struttura della cartella e i suggerimenti si basano sulla posizione del file nella struttura.


Cosa ne pensi degli spazi dei nomi sopra? Ritieni che sia corretto implementare spazi dei nomi per le classi (interfacce ecc ...) esclusivamente nella posizione della cartella?

O pensi che la dichiarazione dello spazio dei nomi non dovrebbe dipendere esclusivamente dalla struttura delle cartelle?

Personalmente, metterei tutti i file sopra nel singolo MyNamespace poiché sono tutti in qualche modo collegati tra loro.

È stato utile?

Soluzione

Penso che i suggerimenti di ReSharper vadano bene. Penso che sia un errore raggruppare le lezioni, ecc., Per quello che sono invece di quello che fanno.

Un'analogia è il raggruppamento di documenti in sottocartelle Word, Excel, ecc. anziché in Project o in qualche altro raggruppamento funzionale.

Altri suggerimenti

Nota che ReSharper aggiunge un " Namespace Provider " proprietà per ogni cartella nel progetto. Puoi impostare quella proprietà su false per una cartella che desideri utilizzare per l'organizzazione, ma per non contribuire agli spazi dei nomi.

È buona norma organizzare i file in cartelle significative e costruire lo spazio dei nomi da quella struttura. Java segue questa regola da molti anni e funziona bene.

Nota anche che quando hai molti spazi dei nomi secondari come sopra, è tempo di considerare la livellatura come suggerito da Patrick (beh, lo conosci?)

http://codebetter.com/blogs/patricksmacchia/archive/2009/02/15/re-factoring-re-structuring-and-the-cost-of-levelizing.aspx

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