2010-08-23 12 views
13

Ho una sorta di problemi di denominazione delle mie classi/spazi dei nomi/controlli.Qual è la convenzione di denominazione consigliata per le classi in un'applicazione multilivello?

Nella mia biblioteca aziendale ho uno spazio dei nomi chiamato Shopping. Esso contiene le seguenti classi: ShoppingCartItem
ShoppingCart
ShoppingCartManager

Nella mia applicazione ASP.net voglio creare un controllo che rappresenta graficamente gli elementi di un'istanza ShoppingCart. Normalmente, chiamerei quel controllo ShoppingCart, ma ancora un'altra classe chiamata ShoppingCart? Ovviamente la compilazione e così via funzionerebbero, ma penso che sia ancora brutta. Penso di avere un problema che nomino le mie classi lavorative in modo esagerato su ciò che dovrebbero rappresentare. Perché quando si tratta del livello di presentazione, chiamerei i controlli che dovrebbero rappresentare la classe business allo stesso modo.

Penso di poter aggiungere un suffisso come "Visualizza", ma voglio farlo correttamente.

Qual è il consiglio di convocazione di denominazione per un'applicazione multilivello?
Come devo denominare il controllo che rappresenta gli elementi di una ShoppingCart nel livello di presentazione?

Edit: Domande correlate: How should I name database wrapper object?

risposta

10

Nel paradigma MVC, è abbastanza comune avere Foo, FooView e FooController.

È possibile decidere che è più semplice incollarli in una gerarchia diversa (Shopping.Model.Cart, Shopping.View.Cart). È concettualmente pulito, ma penso che sia piuttosto illeggibile. Puoi invece utilizzare nomi distinti in diversi spazi dei nomi (Shopping.View.CartView).

Un buon IDE consente di spostare/rinominare le cose, tuttavia, quindi non vale la pena di spendere troppo tempo a preoccuparsi di scegliere il perfetto nome per qualcosa.È più importante essere molto chiaro su ciò che stai modellando e quali sono i suoi limiti. Ad esempio ...

  • È Car un'istanza di una macchina o un particolare marca/modello di auto? Una motocicletta è una car? Se hai intenzione di rinominarlo a Vehicle, la bicicletta è un veicolo?
  • È un Item un tipo di elemento, un'istanza dell'articolo o quantity istanze dell'articolo?
  • È ShoppingCart solo un elenco di articoli/quantità o ha altre funzionalità? Unisce i duplicati di un articolo sommando la quantità?
  • Una wishlist è un tipo speciale di carrello della spesa (quello che non hai ancora acquistato) o qualcos'altro?
  • Puoi "salvare" un carrello della spesa e ottenere un preventivo (così puoi stamparlo, portarlo al tuo capo, farlo firmare e poi comprarlo)? Dove è memorizzata la citazione?
8

altre persone StackOverflow possono conoscere meglio, ma per quanto ne so, non c'è nessuna convenzione di denominazione comunemente accettato o standard di settore in materia di architettura su più livelli. Anche se penso che tu sia sulla strada giusta: più che la denominazione specifica, scegliere un approccio e usarlo in modo coerente contribuirà a rendere il tuo codice più gestibile.

0

È necessario decidere le convenzioni di denominazione che si intende utilizzare prima di iniziare il progetto. .NET Framework contiene numerosi suggerimenti sulle convenzioni di denominazione, è possibile trovare i suggerimenti della convenzione di denominazione di Visual Basic in questa posizione nei documenti:

ms-help: //MS.VSCC/MS.MSDNVS/vbcn7/ html/vaconVBNamingRules.htm

È importante decidere e rispettare un insieme di convenzioni di denominazione piuttosto che limitarsi a un particolare. È importante anche riflettere sull'impatto delle convenzioni sui nomi che usi. Ad esempio, mi piace ancora anteporre i nomi dei controlli al tipo di controllo perché posso digitare "txt" nell'editor di codice, premere Ctrl + Spazio e ottenere un elenco di tutti i controlli della casella di testo in un modulo.

Dai un'occhiata a questolink per una discussione più dettagliata.

+0

Come faccio a usare quel * * ms-help ** posizione dei documenti? .. – Regent

+0

aprire Visual Studio premere F1 e copiare l'URL lì. Se hai l'installazione MSDN completa, vedrai la pagina. in caso contrario, andare su MSDN.com e cercare i suggerimenti della convenzione di denominazione di Visual Basic. Non credo che la risposta meritasse un voto negativo solo perché non si riusciva a capirlo –

+0

@Vinay B R, ho appena controllato di aver installato la libreria MSDN completa, ma ancora non ho avuto fortuna con l'apertura di quella posizione. È stato difficile fornire un [collegamento MSDN] (http://msdn.microsoft.com/en-us/library/0b283bse.aspx) in primo luogo? In ogni caso, non sono stato in grado di trovare informazioni relative alla denominazione multi-livello dopo aver seguito tali collegamenti. – Regent

3

È possibile utilizzare namespace per separare carrello interfaccia utente e l'entità di business, ad esempio:

  • YourApp.Web.UI.ShoppingCart (Il tuo carrello di controllo web)
  • YourApp.BusinessEntity.ShoppingCart (Il tuo carrello classe nel vostro livello di logica di business

Quando si crea/utilizza un oggetto carrello acquisti, potrebbe non essere ovvio a prima vista se l'oggetto è un controllo dell'interfaccia utente o una classe entità, ma l'IDE (studio visivo) fornirà intellisense quando si scrive codice e una descrizione quando si passa il mouse sul nome che può facilitare il tuo problema.

In alternativa, se si vuole veramente per facilitare i vostri occhi per la lettura, è possibile utilizzare il prefisso quando chiamare il vostro oggetto:

  • YourApp.Web.UI.ShoppingCart uiShoppingCart;
  • YourApp.BusinessEntity.ShoppingCart beShoppingCart;
Problemi correlati