Android和中介设计模式

时间:2013-04-14 18:32:57

标签: android design-patterns mediator

我对Android很新,在读了一本书并接受了很多教程后,我即将创建我的第一个“真正的”应用程序。

我的问题很简单:在设计Android应用程序时,调解器设计模式仍然是一个不错的选择吗?

如果是,在编写Android应用程序时应该避免使用任何设计模式吗?

如果没有对介体模式的任何替代,你可以使用它来拥有不同对象的实例集合吗?

1 个答案:

答案 0 :(得分:2)

我建议创建一个模型类(让我们称之为MyModel)并在Application.onCreate(而不是Activity.onCreate)中创建此类的对象。

之后添加getter,因此您可以从任何ActivityService获取此模型,如下所示:

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。