gpt4 book ai didi

xml - 在 XML 中接受 DRY 原则

转载 作者:数据小太阳 更新时间:2023-10-29 02:32:30 26 4
gpt4 key购买 nike

我们有一个产品,每个客户都有一个 XML 配置文件,其中包含多组 UI 选项和子选项。例如,一种类型的用户(称他们为 A)有一组选项,而另一种类型的用户(称他们为 B)有一组不同的选项。

我遇到的问题是 A 和 B 共享大部分选项,尽管有时当他们共享一个选项时,一个或多个子选项不同。

现在,我们让客户拥有 30 种类型的用户,而不是两种类型的用户,并且该客户的配置文件因相同的信息重复多达 30 次而变得臃肿,这给开发带来了维护噩梦。

在这种情况下,您会推荐哪些方法来应用 DRY 原则?

最佳答案

您需要实现一种继承形式,就像面向对象编程语言或 CSS 中的继承一样,您从一组通用选项开始,然后允许它被更具体的集合中的其他选项覆盖。

您建立了一个选项集的层次结构,从顶部开始,所有用户共有的选项,然后是您已确定为多种类型的用户共有的选项集,最后是特定于用户的选项。这需要在您的 XML 配置文件中表示为一棵树,方法是为每组选项指定一个名称和一个父项。树的底部是一组以特定用户类型(A、B 等)命名的选项。

在您的程序中,您需要读取此文件并在内存中组装树。然后,从上到下浏览它,收集选项并在进行时覆盖它们。当您到达树叶的用户特定选项并执行最后的覆盖时,您就完成了。

当您考虑您的选项时,您可能会发现某些集合需要有多个父项,因为它们组合了多个集合中的选项。如果是这种情况,你的树就变成了 DAG,你需要在遍历它之前对其进行拓扑排序。

我知道这是一个复杂的解决方案,但我可以向您保证,这是处理具有共同元素的多个配置的最灵活的方式。我已成功实现它以配置多个使用相同后端的电子商务网站。

关于xml - 在 XML 中接受 DRY 原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com