你能建议更好的设计吗?

时间:2010-12-20 18:20:18

标签: c# design-patterns

以下是该方案。

我有一个叫Domain的东西,里面可以有多个States(Statekey-Statevalue对)。 相同的StateKey可以存在于多个域中但具有不同的StateValue。

e.g。名为'EconomicCapital'的StateKey可能会出现在像'England','America'这样的域名中,分别是'London','Washington'。

与这些相对应的类在公共库中,可以根据需要在客户端或服务端使用。

我有一个winform应用程序,我可以在其中选择一个特定的域。在任何字符串中,无论我遇到任何StateKey,我都希望将其替换为所选域的StateValue。

我可以想到以下设计:

  1. 建立组合关系。域可以由国家组成。因此,当我想要任何StateKey的StateValue时,我可以获取所需域的对象,并可以从其中组成的States集合中提取StateKey。
  2. 但是可能会有大量使用StateKey的实例,我不认为这种方法非常好,它需要从域集合中查找Domain对象并迭代其State集合以查找特定键。

    OR

    1. 维护一个静态集合,可以将所有StateKeys保存在不同的域中。当我想要特定的StateKey时,我可以简单地在这个集合中查找。
    2. 您能否告诉我哪种方法更合适?会不会有其他方法/设计?

      (如果逻辑是在服务端实现的;不只是一个winform应用程序,但许多此类应用程序可以访问它。)

2 个答案:

答案 0 :(得分:3)

这样的东西
Dictionary<domain, Dictionary<statekey, statevalue>()

然后,您可以从域中找到键值对,并从中获取值....或者我在您的问题中遗漏了哪些内容?

答案 1 :(得分:0)

这只是一个“思想项目”/作业吗?域&gt;状态&gt; StateValue关系必须才能成为一个类并使用设计模式。这似乎只是一组查找操作。您可能更善于使用LINQ或数据库。