这个问题陈述的设计方法是什么?

问题描述 投票:0回答:1

目前有200个客户,每个客户都有自己的代码库,代码几乎完全相同。差异程度如下

  1. app.config 中有一些值,并且基于每个客户的业务逻辑有所不同。
  2. 不同的方法有不同的代码。例如,对于客户端 1,processSectionA 的代码可能与客户端 2 的 processSectionA 不同。

要求为所有 200 个客户编写相同的代码来处理此级别的定制。假设我们明天接待一位新客户,这应该可以顺利完成,无需更改任何代码。一些 JSON 更改应该没问题。

客户拥有的东西(app.config值,以及他们自己的业务逻辑)

任何人都可以用任何方法帮助我,我只能想到一个抽象工厂,因为我们可以为不同的客户提供不同的实现。但这并不能解决当我们加入新客户时最少代码更改的问题,因为我们需要在代码本身中添加逻辑。

algorithm .net-core design-patterns system-design lld
1个回答
0
投票

您的要求有点误导。您实现开闭原则的方式,这就是您想要的(您的软件的行为可以在不修改的情况下扩展)是通过依赖倒转,这意味着您让每个客户提供自己的代码来处理您没有的事情没想到。

仅在您让客户提供代码时才有效,因为代码的功能没有限制。如果您只让客户提供 JSON,并且您不希望为新客户更改代码,那么您的代码必须实现任何客户可能想要的所有内容。你不想要那份工作。 你应该改变你的设计方法,不要再试图成为客户的老板。让你的软件模块化,这样他们就可以拿走或留下他们想要的任何部分,以你意想不到的方式将其连接在一起,并用它来解决你没有想到的问题。为您想要解决的问题提供解决方案,而不是让一切都成为您的事。

© www.soinside.com 2019 - 2024. All rights reserved.