я вижу эту картину снова и снова, и хотел бы получить мнение:бизнес-объект, на объекте провода и калькуляторе - который лучше всего
Вариант 1: На объекте провода и бизнес-объект композиции:
На проводе objec t - данные, которые сериализуются и отправляются туда и обратно по машинам (клиент/сервер и т. Д.). Это объект POCO.
Например:
public class Order
{
public int Price;
public int Amount;
}
Business Objects - другой класс, который, как правило, имеет некоторые или все свойства как на объекте провода, но и некоторых вычисляемых полей. Это обычно использует композицию поверх объекта «на провод».
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;}
}
Вариант 2: На объекте проволоки и объекта бизнеса по converstion:
Это было бы то же самое на объекте проволоки, как в примере 1, но бизнес-объекта, вместо того чтобы использовать композицию , будет использовать переводы:
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;}
}
Вариант 3: у вас нет бизнес-объекта и все ваши вычисления сделаны в отдельном классе калькулятора. Примечание: потребители получить на объекте провода и калькулятор
public class Consumer
{
public void ShowTotal(Order o)
{
Calculator calc = new Calculator();
double total = calc.ShowTotal(o);
}
}
Я хотел получить мнения людей о, если есть лучшие практики или шаблон здесь или это просто вопрос предпочтения