如何为应用程序中的一个或几个客户组织特定代码?

时间:2011-10-25 13:45:47

标签: language-agnostic code-organization

当您实施客户特定代码时,如何组织它?

  1. 您是否直接在代码中编写if-Statements? (if(customer == 20)then blah blah)
  2. 您是否有一个特殊的dll,您可以为该客户提供所有代码?
  3. 您是否编写了一种“用户出口”,即可以在单独的dll中重载的命名函数?
  4. 或者您使用库/框架吗?
  5. 还是更好的方式?

1 个答案:

答案 0 :(得分:1)

if语句解决方案存在一些缺陷,您可能需要为每个新客户修改代码。更好的方法是在接口中封装您想要改变的行为,然后将现有代码委派任务转换为此接口的实例。然后,该设计可以用于任何数量的不同行为。

更进一步,将代码设计为框架,然后为每个使用该框架的客户创建一个应用程序项目,以及任何客户特定的代码。该框架可以通过版本控制和(内部)发布,允许客户应用程序不受以后版本的框架的影响。

我建议您查看“灵活,可靠的软件:使用模式和敏捷开发”一书。它建立在这个问题的基础上。