我遇到的问题如下。
我们开始在我们的信息亭接受公司卡,公司卡授权算法/例程对于公司将是不同的。我们希望有一个设计到位,这将有助于我们在现有系统中使用最少的编码添加新的算法/例程,只要公司使用他们的算法/例程接近我们。
提前致谢,
乔。
答案 0 :(得分:2)
猜猜这将是你想要达到的最接近的目标!
您需要一个带有标准方法的CardStrategyBase类来处理这项工作。 然后,Card1Strategy类,Card2Strategy类,......等将具有特定于每种卡类型的实际算法实现。所有卡类型共有的所有东西都可以进入CardStrategyBase类。
答案 1 :(得分:2)
正如其他人所说,Strategy Pattern非常适合这种情况。
当您的实体(公司)的行为(授权)不同时,请封装行为并使其与实体的定义分开。
答案 2 :(得分:0)
您可以使用策略模式http://sourcemaking.com/design_patterns/strategy这是您工作的好参考
答案 3 :(得分:0)
依赖性倒置(DI)。
策略模式的“问题”在于它让你从可用的实现列表中选择它并不解决为新卡添加新实现的问题。
一般来说,大多数体面的DI实现允许您在不进行主要部署的情况下放弃新的实现;之后,可能只需要添加适当的配置来启用新的实现。