我有个问题,如下所示。如何挑选最适合的设计模式
我们开始接受我们的信息亭中的公司卡,公司卡授权算法/例程对公司而言会有所不同。我们希望有一个设计能够帮助我们在现有系统中添加一个新的算法/例程,只要公司通过他们的算法/例程向我们提供最少的代码。
在此先感谢,
乔。
我有个问题,如下所示。如何挑选最适合的设计模式
我们开始接受我们的信息亭中的公司卡,公司卡授权算法/例程对公司而言会有所不同。我们希望有一个设计能够帮助我们在现有系统中添加一个新的算法/例程,只要公司通过他们的算法/例程向我们提供最少的代码。
在此先感谢,
乔。
想这将是最接近你正在努力实现!
您将需要一个带有标准方法的CardStrategyBase类来处理工作。然后,Card1Strategy类,Card2Strategy类等...将具有特定于每种卡类型的实际算法实现。所有卡类型通用的所有东西都可以进入CardStrategyBase类。
您可以使用策略模式http://sourcemaking.com/design_patterns/strategy这是你的工作
正如其他人说,Strategy Pattern适合这种情况下很好很好的参考。
当您的实体(公司)在行为(授权)方面有所不同时,封装行为并使其与实体的定义分开。
依赖倒置(DI)。
策略模式的“问题”在于它让我们从可用实现列表中选择它并不能解决为新卡添加新实现的问题。一般来说,绝大多数体面的DI实现允许您在不必进行重大部署的情况下删除新的实现;之后它可能只是添加适当的配置以启用新的实现的问题。
你能详细说一下吗? 什么类型的卡? 你目前使用什么系统? 这些公司有什么期望? – Dementic 2011-05-23 10:53:56
这些卡将像我们的普通ATM卡一样是磁卡。这些卡片用于支付我们向公司雇员提供的各种服务。卡接口/读卡器将为我们提供卡号,我们的软件将使用该卡号来验证卡。这不是目前的系统。所有公司都需要使用他们指定的协议,通过中央服务器安全地对卡进行身份验证。 – logeeks 2011-05-23 11:03:58
基本上,我已经在(前10年前) 之前建立了SAME项目,但我们提供了一个预先编程的POS,通过CDMA连接到我们的服务器。 – Dementic 2011-05-23 11:17:02