我一遍又一遍的看这个模式,并希望得到的意见:业务对象,线对象和计算器上 - 这是最好的
选项1:在电线对象和业务对象组成:
在线对象 t - 在计算机(客户机/服务器等)之间进行序列化和发送的数据。这是一个POCO对象。
例如:
public class Order
{
public int Price;
public int Amount;
}
业务对象 - 另一类通常具有一些或所有的属性作为导线对象上,而且一些计算字段的。这通常使用“在线”对象顶部的合成。
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);
}
}
我想获得是否有最好的做法还是这里的图案别人的意见或这仅仅是一个用户偏好