【发布时间】:2012-03-19 06:27:40
【问题描述】:
我得到了以下数据结构,现在我需要应用规则来过滤给定的购物车。一个示例是过滤掉用户 bob 和使用信用卡付款方式列出的所有项目。该规则取决于具体情况。
以下所有这些都是我的请求和响应中的复杂类型,具有具体实现而没有实现接口。
分离出我的数据结构和应用于它的规则的最佳设计模式是什么。装饰器模式有帮助吗?欢迎您提出建议。
public class PaymentType {
private String paymentType;
}
public class Items {
private Integer itemId;
private String category;
private List<PaymentType> paymentOptions;
}
public class Group {
private Integer sellerId;
private List<Items> itemList;
}
public class Cart {
private Integer cardId;
private List<Group> group;
}
【问题讨论】:
-
Chain of Responsibility 可用于制作过滤器链。另外(虽然这是关于实现的),我会对给定的购物车创建一个“视图”,根据应用的过滤规则,为每个组内的组和项目提供一个迭代器。
-
澄清一下:您想从购物车中获取所有属于带有一些sellerId 的组并且在paymentOptions 中列出了一些paymentType 的物品吗?
-
是的,一个典型的规则发布在购物车上的例子。以及所有可能形成的规则。
标签: java design-patterns collections