假设我有一个名为PermissionManager的类,它应该只对我的系统存在一次,并且基本上实现了管理应用程序中各种操作的各种权限的功能.现在我的应用程序中有一些类需要能够在其中一种方法中检查某个权限.此类的构造函数目前是公共的,即由API用户使用.
直到几周前,我本来只是让我的类在某处调用以下伪代码:
PermissionManager.getInstance().isReadPermissionEnabled(this)
但是因为我注意到每个人都讨厌单身人士+这种耦合,我想知道什么是更好的解决方案,因为我对单身人士的论证似乎有意义(不可测试,高耦合等).
那么我是否应该要求API用户在类的构造函数中传入PermissionManager实例?即使我只想为我的应用程序存在一个PermissionManager实例?
或者我是否认为这一切都错了,应该有一个非公共构造函数和一个工厂,它在我的PermissionManager实例中传递?
附加信息请注意,当我说"依赖注入"时,我在谈论DI 模式 ......我没有使用像Guice或Spring这样的任何DI框架.(...然而)