我正在构建一个针对 Android 的 ORMLite 扩展。
我想做什么
我想重现 Doctrine 和 Symfony 在 PHP 中使用模型实现的行为之一。 一句话:
- 从一个 yml 文件生成一堆带有访问器的 BaseModel 类 以及不会改变的事情。
- 让真正的模型继承于此 BaseModel,这样即使用户从 yml 重新生成模型,用户的更改也可以持续存在。
我的问题
我想知道在 Android 上尝试实现这样的目标在实践中是否很好,或者这在性能方面是否有风险(继承的大量使用)。
如果您认为它很笨拙,我怎么能允许用户更改 .yml 文件、生成模型而不是从头开始重建他的模型的自定义方面。 我知道这可以通过一些“技巧”来完成,但我真的不想重新发明轮子。
编辑
抱歉,我忘了补充:我正在使用 python 来执行此操作。
谢谢
最佳答案
这是正确的,而且可能是唯一的 Java 方式。在 Java 中,所有调用都是虚拟的,除非您到处使用 final
,但这意味着您甚至不能使用接口(interface)。因此,无论您做什么,大多数电话都可能是虚拟调度。继承不会招致任何其他重大惩罚。
此外,Android 设备通常非常强大,几乎可以肯定不需要以牺牲程序的可读性和可维护性为代价来压缩微小的性能。事实上,大多数 Android 设备几乎与 Web 服务器一样强大,这些 Web 服务器使用速度慢得多的 PHP 执行相同的操作,并且在 Android 设备为一个用户提供服务时仍然管理着成千上万的用户。
关于java - 继承成本 Java (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153264/