在电子商务应用,下面是高层次的API请问这种方法属于价值对象或经理
interface Order{
public List<PaymentGroup> getPaymentGroups();
}
interface PaymentGroup{}
class PaymentGroupImpl implements PaymentGroup{}
class CreditCard extends PaymentGroupImpl{}
class GiftCard extends PaymentGroupImpl{}
class OrderManager{ //Manager component used to manipulate Order}
有必要增加类似hasGiftCard(), hasCreditCard(), getGiftCards(), getCreditCards()
两种方法的一些实用方法 - 1)将这些添加到Order
。然而,这将导致订单和PaymentGroup实现者之间的耦合(如信用卡式,礼金券)实施例 -
interface Order {
public List<GiftCard> getGiftCards();
}
2)将这些对OrderManager
。
class OrderManager{
public List<GiftCard> getGiftCards(Order order){}
}
我个人比较喜欢2),只是好奇会有任何理由要选择1)在2)
我认为这很大程度上取决于API的结构。 – m0skit0