我正在尝试更多地了解正确的架构,所以我将尝试重构我的一些工作代码。我有一个Android应用程序,交换主视图的几个不同的碎片。现在,不同的片段作为MainActivity中的属性存在。当用户选择一个菜单项时,我必须检查当前显示的片段类型(通过instanceof)并根据它的片段类型执行一些不同的任务。它非常难看,我觉得应该更好地抽象。将来,案例陈述将会增长得更多,需要维持。此外,大多数代码都是重复的,因为我只需要特别为一个片段做一些特殊的事情。如何从MainActivity中抽象出这些细节?我试图为我的所有片段创建一个基类,但它没有完全解决,因为一些片段扩展了MapFragment,一些片段只是扩展了Fragment。所以我猜测接口是要走的路,但我不太清楚该怎么做。我是否需要创建一个抽象工厂来在MainActivity中获取这些对象?这样做的正确方法是什么?在阅读了一些关于架构的内容之后,在我看来,我的MainActivity应该只知道我的碎片的一些抽象而不是具体的类本身,这是正确的吗?感谢您提供的任何帮助。