【问题标题】:Pattern for hierarchical settings分层设置模式
【发布时间】:2014-10-22 07:31:32
【问题描述】:

假设软件具有设置层次结构:

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

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

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

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

我很感激这方面的任何建议/模式。

【问题讨论】:

    标签: ruby-on-rails database design-patterns settings hierarchy


    【解决方案1】:

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

    孩子的默认值,可以覆盖

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

    但是如果你需要在

    中使用Creational的方式

    将设置存储在数据库中

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多