0

我正在制作一个Android接受用户数据并做一些后台工作的库。

现在,直接与客户端应用程序交互的类有私有对象和公共静态方法供客户端应用程序调用(我选择静态而不是singleton pattern)。它还要求客户端应用程序initialize()在第一次使用该库时调用一个方法。

这依赖于客户端应用程序知道首先调用哪个活动。如果他们的应用程序可以在许多不同的活动上启动,那么就会出现问题。

我的选择:

  1. 强制用户在每个活动中初始化,并在内部维护库是否已经初始化。
  2. 遵循不同的设计模式。

我是以错误的方式接近这个吗?图书馆的良好设计实践是什么?

4

2 回答 2

1

认为开发人员会知道什么活动将启动应用程序是一个安全的假设,但如果有人决定在他们不知道的情况下使用您的库,您可以使初始化过程有点智能。

例如,您可以在库中添加一个布尔标志,以跟踪它是否已被初始化。通过这种方式,您可以拥有一些返回该值的函数。如果是真的,库已经被初始化,如果没有初始化它。

它看起来有点笨重,但只要在任何潜在启动活动的 onCreate() 函数中使用一个简单的 if 语句,如果库未初始化,则对其进行初始化。

或者也许让用户可以根据需要多次调用初始化函数,但要跟踪该布尔值。将 if 语句放在初始化函数中,如果它已经初始化,则什么也不做。

这样,程序员所要做的就是放置一个

someLibrary.initialize();

在每个相关活动的每个 onCreate() 方法中。一旦它被实际初始化,每个后续调用什么都不做。

另外,附带说明一下,尝试以不需要初始化方法的方式更改代码可能是值得的。初始化函数究竟做了什么?

于 2013-06-20T14:46:12.447 回答
0

我认为Application 类是我正在寻找的。谢谢阿马尔比特。

于 2013-06-20T14:54:57.063 回答