我希望在Android中使用MVP模式,我大致提出了以下包和类:
以下是3个套餐:
com.myview
mainActivity //public
com.ipresenter
IPresenter //public
com.PresenterImpl
Presenter //protected
Presenter implements
IPresenter。
我打算做的是使Presenter
受到保护,并且只能在mainActivity
中进行实例化。换句话说,我想限制它的可见性,只有通过mainActivity
类才能创建这个类。
由于它的构造函数被隐式声明为protected,我无法在类Presenter
中实例化mainActivity
。
如何在不必Presenter
public
的情况下执行此操作?如何限制包中某个(或某个)类的可见性,并且只允许通过另一个包中的另一个类创建它?
我考虑过classLoader
Iterator方法,但是这是一种矫枉过正还是没有必要,因为还有其他方式/模式?
许多书似乎都建议尽可能地限制课程的可见度,所以我借此机会学习和利用良好实践。
附录:
除了前面提到的,我的最终目标是能够使用接口类型在mainActivity
内声明演示者。因此,如果将来我有多个演示者,他们仍将是接口类型IPresenter
。