kar*_*.io 1 java android class android-activity
在Android应用中.我有一个要求,我有我的HomeActivity(有18000行代码),如果我的设备支持ARCore,我想HomeActivity扩展与ARBaseACtivity如果设备不支持ARCore然后我需要它扩展NonARBaseActivity.
我在启动画面中检查这种情况.
现在,首先有一种方法是我做两个活动,同样是副本,HomeActivity但我需要知道有没有更好的方法来做到这一点.因为我不想每次在其中一个中做任何改变时都要复制HomeActivity.
Downvoters请在下面评论,以便我可以改善我错在哪里.谢谢!!
该技术的答案是:没有可能的.
在Java中,您的继承结构是固定的.根本不可能在一个上下文中使用一个C类扩展A类,而在另一个上下文中使用B类.如果你想这样做,你最终会有两个类,C1和C2.
当然,真正的答案是:你必须退后一步,明确地构建整个解决方案.仅18K线在一个无论是一个迹象,什么是严重的错误在这里.人们可以提到良好的旧FCoI原则,但随后:18K行代码意味着很多代码和功能.在stackoverflow的单个答案中,根本不可能给出正确的指导.
所以,自以为是:你应该退后一步,找出一些(架构)专家来交谈.然后坐下来(可能几个小时,甚至几天),看看你有什么,以及你想去哪里.然后在那里一起工作.除了对症状进行创可贴之外别的什么都没有.当然,当你不那样做时,什么都不会破坏.但每一步只会增加混乱到一塌糊涂,使得每一步更昂贵.迟早,改变你的巨石将变得几乎不可能,每个人都会要求"扔掉它,从头开始".