2012-08-24 16 views
5

Ad esempio, è una buona pratica?Qual è la procedura migliore per denominare le proprietà che sono oggetti?

private SalesOrder salesOrder; 

public SalesOrder SalesOrder 
{ 
    get { return salesOrder; } 
    set { salesOrder = value; } 
} 

O devo sempre aggiungere la proprietà dell'oggetto con l'oggetto o BusinessObject per distinguere il tipo di proprietà dalla proprietà stessa:

public SalesOrder SalesOrderBusinessObject 
{ 
    get { return salesOrder; } 
    set { salesOrder = value; } 
} 

importa se la struttura è parte di una pagina web o un oggetto?

+0

Nel caso in cui stavo pensando che sia in realtà un controllo utente. Il controllo è chiamato SendEmail.ascx. Quindi l'uso dovrebbe leggere "SendEmail".Order' – Will

+0

Quindi dovresti separare l'interfaccia utente dalla logica di business, creare una classe 'Sale' (o qualsiasi altra cosa). –

+0

Lo è. SalesOrder è una classe completamente separata, con un proprio insieme di proprietà e metodi di accesso ai dati Sto usando questa proprietà per tenere traccia di SalesOrder attraverso i postback. – Will

risposta

2

Quest'ultimo è orribile. Modella qualcosa che ha un ordine di vendita, che a sua volta è modellato da un oggetto, non modellando qualcosa che ha un oggetto ordine di vendita.

"BusinessObject" dovrebbe essere solo il nome di qualcosa nel codice, se si sta scrivendo uno strumento per gli sviluppatori per aiutarli a gestire gli oggetti di business.

Il primo è spesso buono.

Non va bene se potrebbero esserci più di uno SalesOrder - anche se uno è quello "principale", stai introducendo confusione. Tuttavia una proprietà SalesOrders che era una enumerazione o una collezione di oggetti SalesOrder è buona (quando il plurale in lingua inglese non è della forma di singular +, usa il plurale reale anziché aggiungere semplicemente s, a meno che non si tratti di un caso in cui il plurale inglese è lo stesso del singolare

E 'meno grande quando tutto il resto è vendite legate Eg questo è orribile:..

public class Sale 
{ 
    public SalesOrder SalesOrder{get;set;} 
    public SalesReference SalesReference{get;set;} 
    public decimal SalesValue{get;set;} 
    public string SalesCurrency{get;set;} 
} 

In questo caso sarei tagliato le "vendite" di ogni nome della proprietà, ma non (necessariamente) dai nomi delle classi

Tuttavia, questo è un caso in cui è più bello:

public class Sale 
{ 
    public SalesOrder SalesOrder{get;set;} 
    public StockOrder StockOrder{get;set;} 
} 

In tutto, il modo di accedere è:

  1. Qual è il miglior nome per quello che questa classe fa, che lo differenzia da quello che altre classi fanno (e, di conseguenza, non "oggetto" , "oggetto aziendale", "entità" o simili a meno che ciò non risulti particolarmente rilevante nel caso specifico).
  2. Qual è il nome migliore per ciò che la proprietà riflette, che lo differenzia da altre proprietà.

Se finiscono per dare lo stesso nome in un caso particolare, allora va bene (a meno che non sia una classe annidata, quando è ambigua e illegale). Se finiscono per dare un nome diverso, allora va bene.

+0

La classe è un controllo utente, SendEmail che ha una relazione 1: 1 con 'SalesOrder'. – Will

+0

Probabilmente andrei con 'SalesOrder' allora. A cosa serve la classe? Per rappresentare un ordine di vendita. A cosa serve la proprietà? Per mantenere l'ordine di vendita con cui si sta occupando il controllo. Entrambe le domande suggeriscono la risposta "ordine di vendita" e l'applicazione delle convenzioni di denominazione .NET a quella di "Ordine di vendita" separatamente in entrambi i casi. Se c'è qualcosa da criticare, sarebbe il verbo "inviare" applicato a una cosa (un controllo), ma è probabilmente un'abbreviazione perfettamente ragionevole. –

1

Non inserire i tipi nei nomi. Le classi possono cambiare i significati nel corso della loro vita e non vuoi che il tuo codice cresca ma non rispecchi ciò che è cambiato. Si tratta di una sospensione dai giorni ASP in cui si utilizzava il prefisso dei nomi delle tabelle con 'tbl' e le viste con 'vw'. Assegna un nome alle proprietà di cosa sono, singolare o plurale e sii coerente. Basta non mettere quello che la classe è nel nome. E se stai cercando di riflettere in modo più accurato qual è l'oggetto, guarda alla progettazione basata sul dominio in modo che il tuo codice rifletta l'azienda anziché ciò che i programmatori considerano.

Problemi correlati