我一直在处理涉及数据加载的几个项目,有时是远程加载,有时是本地加载,有时是JSON格式,有时是XML格式。我遇到的问题是由于开发速度过快和各种客户不断变化的想法,我的设计过于死板,我希望它们更加灵活。我一直在尝试想出可重用的数据加载解决方案,并希望得到一些建议,因为我想你们中的许多人都遇到了同样的问题。
我想做的是创建一个通用的LoadingOperation抽象类,它具有类型为Parser和Loader的成员变量,这些变量分别具有parse()和loadData()方法。 Parser和Loader类是接口和实现这些接口的类,例如XMLParser和JSONParser,LocalLoader和RemoteLoader等。使用类似这样的东西,我想为每个要加载的东西创建一个扩展LoadingOperation的新类,无论是本地XML文件还是远程JSON或其他任何内容。
问题是特定的Parser实现不能返回自定义数据类型,否则会破坏LoadingOperation类的多态行为。我一直在尝试使用泛型并声明LoadingOperation的子类,例如:
我正在使用解析器类进行类似的操作,但这似乎有点奇怪。是否有人能提供任何关于我做错了什么/可以做得更好的建议呢?我想能够快速地对变化的规格做出反应(忽略它们不应该变化得那么多的事实!),并且对代码进行逻辑分离等等...... 感谢任何帮助! 编辑:问题也在这里link text被问到。
我想做的是创建一个通用的LoadingOperation抽象类,它具有类型为Parser和Loader的成员变量,这些变量分别具有parse()和loadData()方法。 Parser和Loader类是接口和实现这些接口的类,例如XMLParser和JSONParser,LocalLoader和RemoteLoader等。使用类似这样的东西,我想为每个要加载的东西创建一个扩展LoadingOperation的新类,无论是本地XML文件还是远程JSON或其他任何内容。
问题是特定的Parser实现不能返回自定义数据类型,否则会破坏LoadingOperation类的多态行为。我一直在尝试使用泛型并声明LoadingOperation的子类,例如:
class SpecificLoader extends LoadingOperation<CustomDataType>
我正在使用解析器类进行类似的操作,但这似乎有点奇怪。是否有人能提供任何关于我做错了什么/可以做得更好的建议呢?我想能够快速地对变化的规格做出反应(忽略它们不应该变化得那么多的事实!),并且对代码进行逻辑分离等等...... 感谢任何帮助! 编辑:问题也在这里link text被问到。