在过去的几个月里,我一直在为我的公司开发一个库,并且对每当我将数据存储或加载到内部存储时文件流似乎都需要上下文这一事实感到恼火。
我设计的图书馆是这样工作的:
- 单例类用于提供和处理钥匙串(包含应用程序密钥和设备 ID)和 authinfo(用户和密码)
每当请求调用 Web 服务时,调用类将尝试获取单例类的实例并通过它获取钥匙串和身份验证信息,如下所示:
SingletonClass.getInstance().getCredentials(Context ctx);
这样做的结果是,我需要不断地提供调用活动的上下文,因为我的大部分库都围绕着调用以凭据和设备 ID 作为参数的 API 为中心。
我特别指的是这些行:
....
FileOutputStream fos = ctx.openFileOutput(filename,
Context.MODE_PRIVATE);
fos.write(buf);
fos.close();
....
我对为什么需要活动调用的特定上下文感到困惑。任何帮助是极大的赞赏。有没有解决这个设计问题的另一种方法?