Kun*_*sai 9 java android interface android-fragments android-activity
在本文档"与其他片段进行通信"中,Google告诉我们,传递Activity和Fragment的最佳实践是实现一个接口.然后,此接口可以由Fragment调用并在Activity中执行必要的行为.
但也有一种黑客方式来做到这一点.通过方法"getActivity()"直接获取Activity ,然后我们可以使用它下面的所有"公共方法".
这让我很困惑.因为我无法想到使用黑客方式做任何这一点的任何关键缺点.
我头脑中出现的第一种方法的优点是:
好吧,在我总结出这些之后,我对自己有点说服了.但坦率地说,我真的想要一些其他坚实的,并且必须有理由这样做.任何想法或文件将非常感谢!!
最重要的是,主要优点是代码的模块化.当您从"子"类直接调用"父"类时,您将创建循环依赖项.这实际上意味着你不能在不改变另一个的情况下替换一个.这种方法经常导致意大利面条代码难以维护,甚至更难扩展,并且如果没有大的重构努力几乎不可能替换.
至于你的例子:如果你Activity直接调用你的公共方法Fragment,你将无法在没有实现hacky解决方案(如if(getActivity() instanceof A) {...} else {...})的情况下在其他活动中重用Fragment ,也不能将你的Activity换成例如一个控制器 - 类,或者你提出的任何其他解决方案.
如果您无法理解这个主题,我强烈建议您阅读" 有效Java "一书.
| 归档时间: |
|
| 查看次数: |
2557 次 |
| 最近记录: |