我需要在单位之间进行转换,每个单位有两部分,它的名字和一个整数,整数部分可以是正数也可以是负数。我需要我的 Unit
类具有依赖注入(inject)和松散耦合。例如,如果我将来需要添加一些东西,我不想更改正在使用该类的其他类。
我的单元类中还应该有一个Convert()
方法来在单元之间进行转换。我查看了这些链接:
但这些似乎松耦合。
请让我知道这个问题的推荐设计模式,
最佳答案
我会为方法创建一个自定义属性,指定方法可以相互转换的单位。然后,您的转换器函数可以从要转换的项目中提取单位,并使用反射来查找那些具有与这些单位相互转换的转换方法的类。
您确实需要一个用于转换为/自方法的核心度量单位。例如。选择公制,然后所有转换转换为/从公制转换为/从第二个单位。然后从单位 A 到单位 B,从 A 转换为公制,然后从公制转换为 B,使用反射选择 A 和 B 转换器。
当然,由于您没有根据您的请求提供太多细节,所以很难说出您到底想做什么,所以这是一个疯狂的猜测“设计”。 :)
关于c# - C#中的单位转换设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13385573/