![]() |
1
2
代码本身很好。由于构造函数不能是传统编码接口的一部分,接下来最好的事情是一致的反射接口。 但是,如果您在许多地方重复此代码,那么这就不太好了。您可以尝试将其集中到某种类型的工厂或生成器中,这些工厂或生成器提供文件中的单元名称以及为该单元定义的参数,并将其与用UnitFactory提供的参数实例化该单元的处理程序实现配对。UnitFactory使用反射来实例化命名单元并向其提供参数。 这允许重用,并将读取文件与实例化以及实例化方法分离。 |
![]() |
2
3
这是一个 factory pattern :
可改为
但是,工厂是一个if/else列表。 |
![]() |
3
1
我认为您的实现是可以的。另一种方法:文本文件是 DSL (特定于域的语言) 您可以切换到更动态的、与JVM兼容的语言。像groovy(我最喜欢的;-)、javascript(Rhino,…)、Beanshell、Jython等动态语言……可以更容易地用于实现特定于域的语言(DSL)。对于更复杂的DSL,您可以查看EclipseXtext项目。 |
![]() |
4
0
这是一个简单、精简的序列化。如果这符合你的目的,我会说这很好。 |
![]() |
insipidintegrator · 通过迭代器/指针访问命名空间? 7 月前 |
|
Ben · 如何使用带有部分应用的过滤器功能的角度材质日期选择器? 1 年前 |
![]() |
larn · 这是工厂模式还是战略模式? 1 年前 |
![]() |
Community wiki · 您对存储库模式的理解是什么? 1 年前 |