Lo último es horrible. Está modelando algo que tiene un pedido de cliente, que a su vez está modelado por un objeto, no modelando algo que tiene un objeto de pedido de cliente.
"BusinessObject" sólo debe ser el nombre de algo en su código, si usted está escribiendo una herramienta para los desarrolladores para ayudarles a lidiar con los objetos de negocio.
La primera a menudo es buena.
No es bueno si pudiera haber más de un SalesOrder
- incluso si uno es el "principal", está introduciendo confusión. Sin embargo, una propiedad SalesOrders
que era enumerable o una colección de objetos SalesOrder
es buena (cuando el plural en inglés no es del singular + 's', use el plural real en lugar de solo sumar s, a menos que sea un caso donde plural Inglés es el mismo que el singular
es menos de un gran cuando todo lo demás está relacionado con las ventas Ej esto es horrible:..
public class Sale
{
public SalesOrder SalesOrder{get;set;}
public SalesReference SalesReference{get;set;}
public decimal SalesValue{get;set;}
public string SalesCurrency{get;set;}
}
En este caso me había cortado las "ventas" de cada uno . nombre de la propiedad, pero no (necesariamente) a partir de los nombres de las clases
sin embargo, este es un caso en el que es más agradable:
public class Sale
{
public SalesOrder SalesOrder{get;set;}
public StockOrder StockOrder{get;set;}
}
En total, la forma de abordarlo es:
- ¿Cuál es el mejor nombre para lo que hace esta clase, que lo diferencia de lo que otras clases lo hacen (y por lo tanto, no "objeto" , "objeto de negocio", "entidad" o similar a menos que eso realmente se destaque como particularmente relevante en el caso dado).
- Cuál es el mejor nombre para lo que refleja la propiedad, que lo diferencia de otras propiedades.
Si terminan dando el mismo nombre en un caso particular, entonces eso está bien (a menos que sea una clase anidada, cuando es ambigua e ilegal). Si terminan dando un nombre diferente, entonces bien también.
En el caso que estaba pensando en su realidad es un control de usuario. El control se llama SendEmail.ascx. Entonces, el uso leería 'SendEmail.Ordene ' – Will
Luego debe separar la UI de la lógica de negocios, cree una clase 'Venta' (o lo que sea). –
Lo es. SalesOrder es una clase completamente separada, con su propio conjunto de propiedades y métodos de acceso a datos Estoy usando esta propiedad para realizar un seguimiento de SalesOrder en las devoluciones. – Will