我对 android 还很陌生,在阅读了一本书并学习了很多教程之后,我即将创建我的第一个“真正的”应用程序。
我的问题很简单:在设计 android 应用程序时,调解器设计模式仍然是一个不错的选择吗?
如果是的话,在编写 android 应用程序时是否应该避免任何设计模式?
如果没有,您可以使用中介模式来收集不同对象的实例吗?
我对 android 还很陌生,在阅读了一本书并学习了很多教程之后,我即将创建我的第一个“真正的”应用程序。
我的问题很简单:在设计 android 应用程序时,调解器设计模式仍然是一个不错的选择吗?
如果是的话,在编写 android 应用程序时是否应该避免任何设计模式?
如果没有,您可以使用中介模式来收集不同对象的实例吗?
我建议创建一个模型类(我们称之为)并在(不是)MyModel
中创建这个类的对象。Application.onCreate
Activity.onCreate
在那之后添加吸气剂,所以你可以从任何Activity
或Service
这样的地方得到这个模型:
MyApplication app = (MyApplication) getApplication();
MyModel model = app.getMyModel();
User user = model.getCurrentUser();
等等
如果您在那里创建从上面代码的前两行返回模型的方法,那么创建BaseActivity
类也可以节省您的输入。protected MyModel getModel()
编辑:
您需要创建一个类来扩展Application
并在AndroidManifest.xml
.
这是如何:https ://stackoverflow.com/a/2929927/2183804
编辑(关于单例):
据说它是一种反模式(不仅在 Android 上)。在 Android 中,我看到人们以带有 MySingleton.getInstance(Context) 之类的访问器的单例结尾,因为他们无论如何都需要 Context,例如用于 SharedPrefs 或 DB 访问。这就是 Application 的用途,因此无需创建额外的、骇人听闻的实体,它可能会以错误的方式使用:MySingleton.getInstance(null) 从没有可用上下文的地方。在进程被杀死并重新启动后,这可能会导致 NPE。