gpt4 book ai didi

ruby-on-rails - 分层设置模式

转载 作者:搜寻专家 更新时间:2023-10-30 20:39:25 25 4
gpt4 key购买 nike

假设软件有一个层次结构的设置:

- system settings
-- company settings
--- department settings

一些父设置是子设置的默认设置,可以被覆盖。

将设置存储在数据库中的最佳做法是什么?代码结构应该是什么样的?

我正在考虑将设置存储为键/值,并将选项设置为默认值。许多设置组合成一个设置集,该设置集引用其中一个层次结构。在代码中,例如我会从一家公司获取设置集并搜索一个所需的设置。如果所需设置为 NULL,我会在系统设置集中查找所需的默认设置。

我将不胜感激在这方面的任何建议/模式。

最佳答案

这里可以做很多事情。这取决于您的实际设计和目标。 行为 点的一种可能解决方案是 State design pattern ,因为当对象的状态发生变化时,它会改变对象的行为。我目前正在使用它来保持

default for the child and can be overwrite

取决于当前正在经历的状态。如果你只想加载相应的集合,我认为这是一个很好的解决方案。

但是如果你需要在

中使用 Creational方法

store the settings in the database

Abstract factory是一种方法。它将允许您创建多个类族的实例,并将提供一个接口(interface)来创建相关或依赖对象的族,而无需指定它们的具体类(因此您可以实现覆盖)。

Composite将帮助您创建简单和复合对象的树状结构,并表示这个部分-整体层次结构。 Composite 允许客户端统一处理单个对象和对象组合。

我知道这是抽象的解决方案,但这些概念可以恰到好处地完成工作。

关于ruby-on-rails - 分层设置模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26502342/

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