支持3方平台不同版本的软件架构/结构

时间:2019-05-07 12:25:07

标签: visual-studio architecture

我当前正在编写第三方软件中使用的软件。

第三方软件在全球范围内使用,并且不同的客户将使用该软件的不同版本。例如,v1,v2,v3。

当前,我有使用v1,v2和v3的客户端,因此我需要我的代码可以跨不同版本工作。我想知道其他人如何通过管理代码,针对不同版本测试代码等来解决此问题。

1 个答案:

答案 0 :(得分:0)

此方案的一般规则是由配置驱动,而不是由整个代码中的if / else语句驱动。来自v1,v2等的特定规则。

此外,您还需要对默认应用程序进行一些处理。

由配置和构建时间变量驱动

在您的情况下,配置将是用于依赖项注入的服务容器接线文件,该文件针对您的不同客户端-v1,v2具有不同的实现。 使用依赖注入,您将拥有通用的应用程序流程,并且可以通过不同的实现来更改基础业务逻辑。

您可以引入不同的配置变量,以便可以更改构建时间值。

公共部分

关于通用代码,可以结合使用装饰器和命令设计模式以具有适当的结构。

如果要为客户端关闭某些功能,则另外一种模式是可为空的对象。

测试

关于测试-根据客户要求的TDD和BDD,您将在特定于客户的情况下隔离所有逻辑。

命名

命名应基于功能而非客户端进行。

您可以搜索有关构建可白化应用程序的更多信息。