spazio dei nomi C # e denominazione delle classi

0

Ho un piccolo problema con lo spazio dei nomi e la denominazione delle classi. Ecco un esempio pratico:

ResourceLayer.cs       - Public component that holds the manager and the map provider, implements an interface 
ResourceMapProvider.cs - Provides a bitmap representation of the resources
ResourceManager.cs     - Is a repository of resources with some utility methods
Resource.cs            - A resource entity

Ma avrò un numero maggiore di livelli, ognuno specializzato, quindi questo verrà replicato molto.

Non ho idea di come namespace in modo concettualmente corretto. Ecco le mie idee e perché ritengo che non funzionino:

App.ResourceLayer - Same name as class, bad practice and had some scope issues

App.ResourceUtils - Good name, but ResourceLayer.cs doesn't really fit into the namespaces and I wouldn't know where to put it  

App.Resource - Same name as a class that would be in it, scoping issues (App.Resource.Resource) 

App.Resources - Confusing (App.Resources.Resource) , doesn't really fit the layer part (App.Resources.ResourceLayer) 

Quindi qualcuno ha qualche idea per nominare?

    
posta overburn 04.10.2016 - 08:57
fonte

2 risposte

2

Rinomina Resource.cs in ResourceEntity.cs e puoi lasciare che il suo spazio dei nomi sia Resource . Lo stesso con Elevation e tutti gli altri.

Questo risolve il problema di denominazione. Assicurati di essere a tuo agio con questo progetto di taglierina. È facile ossessionare la creazione di una struttura prevedibile con cui lavorare all'interno e ignorare i problemi causati dal fatto che si insiste a seguirlo piuttosto che a ripensare la struttura.

    
risposta data 04.10.2016 - 10:06
fonte
2

In base alle linee guida per la denominazione , gli spazi dei nomi devono essere plurale, ad es. ResourceLayers rater di ResourceLayer . Ciò evita le collisioni tra classe e nome spazio dei nomi.

Detto questo, potresti non aver nemmeno bisogno di uno spazio dei nomi separato per ogni livello, poiché nello schema di denominazione suggerito, il nome del livello viene utilizzato nei nomi di tutti i componenti del livello. Quindi non hai davvero bisogno di un namespace per disambiguare. Avere troppi spazi dei nomi non necessari porta alla confusione.

    
risposta data 04.10.2016 - 10:24
fonte

Leggi altre domande sui tag