【问题标题】:Unit converting design pattern in C#C#中的单位转换设计模式
【发布时间】:2012-11-14 19:06:48
【问题描述】:

我需要在单位之间进行转换,每个单位有2部分,它的名字和一个整数,整数部分可以是正数也可以是负数。我需要我的Unit 类进行依赖注入并松散耦合。例如,如果我将来需要添加一些东西,我不想更改正在使用该类的其他类。

我的单位类中还应该有一个Convert() 方法来在单位之间进行转换。我查看了这些链接:

但这些似乎是松散耦合的。

请告诉我针对此问题推荐的设计模式,

【问题讨论】:

  • 您的任何一个链接都没有谈论单位转换(类型转换完全不同)。您的 Unit 类将具有哪些依赖项?
  • 我正在寻找解决方案,我们实现了小改动的单元,我们可以扩展 Unit 类而无需对其他类进行大的改动。

标签: c# design-patterns dependency-injection loose-coupling unit-conversion


【解决方案1】:

我将为方法创建一个自定义属性,该属性指定方法可以转换的单位。然后,您的转换器函数可以从被转换的项目中提取单位,并使用反射来查找具有转换方法的类,这些转换方法可以转换为/从这些单位转换。

您确实需要一个用于转换为/从方法的核心度量单位。例如。选择公制,然后所有转换转换为/从公制转换为/从第二个单位。然后从单位 A 转到单位 B,从 A 转换为公制,然后从公制转换为 B,使用反射选择 A 和 B 转换器。

当然,由于您没有就您的请求提供太多细节,因此很难说出您到底想做什么,所以这是一个疯狂的猜测“设计”。 :)

【讨论】:

  • 谢谢,例如,现在我有克和公斤,但将来可能需要磅。我需要将这些单位转换在一起,你有源代码示例?我不喜欢遍历每个单元并定义新的转换。
  • 有人把策略设计模式放在这里,然后从这里删除。请让我知道任何设计模式
猜你喜欢
  • 1970-01-01
  • 2010-11-03
  • 2011-03-02
  • 1970-01-01
  • 2011-12-30
相关资源
最近更新 更多