对于每个产品,都有相关的成本计算器,如:折扣、商家折扣、商家奖金、每月折扣等。未来,将添加更多成本计算器。
对于每个成本计算,我们都有一个具体的产品类别和许多装饰器。所有产品都应使用所有计算器,因为计算器决定根据产品属性(如产品商家 ID、类别 ID、颜色等)应用其计算。
而且,我们的系统中有数百万种产品需要计算。所以,我们最好缓存装饰过的计算器。因为,在运行时装饰每个产品实体会很昂贵。但这对于装饰器模式来说很难。在我们的情况下使用这种模式似乎是一种气味。
你有什么建议?我们应该使用装饰器、策略还是责任链模式?或无模式。