1
2
您可能希望将解析器实例化器放在对象本身上,例如。,
任何参数
将会发生的是,对象本身将返回这些,而您的代码将发生以下情况:
现在这个解决方案并不完美。如果您无权访问
|
2
1
你可以有一个
并设置structuremap以查找“SomeType”的解析器
更新1: 命令/输入项将沿以下线条显示:
事实上,您的实现让我觉得旧代码,即使没有if和switch,也有问题。你能提供更多关于在你的实现中GetCommand应该发生什么的信息吗?这个命令是否会随着参数的变化而变化,因为我不确定该建议什么。 |
3
0
|
4
0
第三种选择是以分散的方式在运行时发现可能的命令。 例如,Spring可以在Java中使用所谓的类路径扫描、反射和注释来实现这一点,Spring解析您指定的包中的所有类,选择用@Controller、@Resource等注释的类,并将它们注册为bean。
我不知道C#,但应该有一种类似的技术:可能您可以枚举程序集中的类列表,并根据某些条件(命名约定、注释等)选择其中的一些类。 现在,为了考虑第三个选择,这只是第三个选择。我怀疑它是否真的应该在实践中使用。您的第一个选择(只需编写一段了解所有类的代码)应该是默认选择,除非您有令人信服的理由这样做。 在分散的OOP世界中,每个类都是拼图的一小部分,必须有一些集成代码知道如何将这些部分组合在一起。拥有这些无所不知的类并没有错(只要您将它们限制在应用程序级和子系统级集成代码中)。 无论您选择哪种方式(硬编码类中可能的选择、读取配置文件或使用反射来发现选择),都是一样的,并不重要,并且可以随时更改。 玩得高兴 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |