【发布时间】:2017-03-31 10:47:15
【问题描述】:
在使用 Model-View-Presenter 模式时,我经常发现自己处于以下情况:
// PACKAGE A
// pacakge private
interface View
{
void methodForPresenter();
}
public class ViewImpl implements View
{
@Override
public void methodForPresenter() {}
public void methodForClient() {}
}
// PACKAGE B
// client code example
void main()
{
ViewImpl view = new ViewImpl();
view.methodForClient(); // ok
view.methodForPresenter(); // not ok - should not be used
}
有没有办法将用于演示者的方法隐藏在包中?由于某种原因,视图接口是包私有的,但由于 java 中所有重写的接口方法都必须是公共的,所以我不知道如何从客户端代码中隐藏 methodForPresenter()。
【问题讨论】:
标签: java