je vois ce schéma encore et encore et je voulais obtenir des avis:objet métier, sur l'objet de fil et calculatrice - qui est le mieux
Option 1: Sur la composition objet métallique et objet métier:
Sur le fil Objec t - les données qui sont sérialisées et renvoyées sur les machines (client/serveur, etc.). C'est un objet POCO.
Par exemple:
public class Order
{
public int Price;
public int Amount;
}
Business Objects - une autre classe qui a généralement une partie ou toutes les propriétés que les sur l'objet métallique, mais aussi des champs calculés. Cela utilise généralement la composition au-dessus de l'objet "sur le fil".
public class OrderBusinessObject
{
private Order _order;
public OrderBusinessObject(Order o)
{
_order = o;
}
public int Price {return _order.Price;}
public int Amount{return _order.Amount;}
public int Total{return _order.Price * _order.Amount;}
}
Option 2: Sur l'objet métallique et objet métier par converstion:
Ce serait la même sur l'objet métallique comme par exemple 1, mais l'objet métier, au lieu d'utiliser la composition , utiliserait les traductions:
public class OrderTranslator
{
public OrderBusinessObject Translate(Order o)
{
OrderBusinessObject bo = new OrderBusinessObject();
bo.Amount = o.Amount;
bo.Price = o.Price;
return bo;
}
}
public class OrderBusinessObject
{
private int _price;
private int _amount;
public int Price {return _price;}
public int Amount{return _amount;}
public int Total{return _price * _amount;}
}
Option 3: N'ayez pas du tout l'objet métier et faites tous vos calculs dans une classe de calculatrice séparée. NOTE: Les consommateurs obtiennent le sur l'objet métallique et une calculatrice
public class Consumer
{
public void ShowTotal(Order o)
{
Calculator calc = new Calculator();
double total = calc.ShowTotal(o);
}
}
Je voulais obtenir l'opinion des gens sur s'il y a une meilleure pratique ou un motif ici ou bien cela est juste une question de préférence de l'utilisateur