Java(Android)中的继承成本
我正在为Android开发一个ORMLite的扩展。
我想做的事情
我想实现一些在PHP中使用Doctrine和Symfony时的模型行为。简单来说:
- 从一个yml文件生成一堆基础模型类,这些类里有一些访问器和不会改变的内容。
- 让真实的模型继承这个基础模型,这样用户的修改就能保留,即使他们从yml重新生成模型。
我的问题
我在想,在Android上实现这样的目标是否可行,或者这样做会在性能上有风险(因为大量使用继承)。
如果你觉得这样做不太好,我该如何让用户修改.yml文件,生成模型,而不需要从头开始重建他们自定义的模型部分。我知道可以通过一些“技巧”来实现,但我真的不想重新发明轮子。
编辑
抱歉,我忘了补充:我正在使用Python来做这个。
谢谢
1 个回答
2
这就是正确的,也是可能是唯一的Java做法。在Java中,所有的调用都是虚拟的,除非你到处使用final
,但那样的话你就连接口都不能用了。所以无论你怎么做,大多数调用都可能是虚拟分发。继承并不会带来其他显著的负担。
而且,安卓设备通常都很强大,所以为了提高性能而牺牲代码的可读性和可维护性几乎是没必要的。实际上,大多数安卓设备的性能几乎和那些用慢速PHP做同样事情的网页服务器一样强大,而网页服务器还能同时处理成千上万的用户,而安卓设备通常只服务一个用户。