我对Android很新,在读了一本书并接受了很多教程后,我即将创建我的第一个“真正的”应用程序。
我的问题很简单:在设计Android应用程序时,调解器设计模式仍然是一个不错的选择吗?
如果是,在编写Android应用程序时应该避免使用任何设计模式吗?
如果没有对介体模式的任何替代,你可以使用它来拥有不同对象的实例集合吗?
答案 0 :(得分:2)
我建议创建一个模型类(让我们称之为MyModel
)并在Application.onCreate
(而不是Activity.onCreate
)中创建此类的对象。
之后添加getter,因此您可以从任何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的用途,因此不需要创建额外的hackish实体,它可能以错误的方式使用:MySingleton.getInstance(null)来自没有Context可用的地方。这可能会在进程被终止并重新启动后导致NPE。