用于筛选自定义数据结构的设计模式

3
我收到了以下数据结构,现在我需要应用规则来过滤给定的购物车。例如,过滤掉所有由用户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;
    }

“责任链模式”可用于创建一系列过滤器。此外(这是关于实现的内容),我会创建一个“视图”,该视图提供了一个迭代器,可以根据应用的过滤规则遍历给定购物车中每个组和组内的项目。 - khachik
澄清一下:您想从购物车中获取所有属于某个卖家ID组的商品,并且在支付选项中列出了某些支付类型吗? - Sergey Berezovskiy
是的,这是一个放在购物车上的典型规则的例子。还有可能形成的所有规则。 - Vijay Selvaraj
1个回答

0
  1. 如果对于每种PaymentType,您需要执行不同类型的操作,则可以尝试使用STATE PATTERN并委托您的请求。

  2. DECORATOR PATTERN用于在运行时添加额外的责任,因此我实际上没有找到那种情况,可能我错过了某些地方。

进一步的项目,组可以进行细分,有可能使用DECORATOR PATTERN。

如果项目数量固定,则可以使用COMMAND PATTERN,并且UNDO场景将有助于从购物车中丢弃/接受项目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接