我有一个像这样的界面
public interface Manager {
public void manage();
}
现在,所有Manager
都需要加载要管理的工作,但是,我对将public void loadWork()
添加到界面感到复杂......
一方面,所有Manager
都会执行此操作,但另一方面,Manager
类的用户无需了解loadWork()
。
问题:在界面中添加“helper”或“setup”类型方法是不好的做法?
答案 0 :(得分:1)
在界面中添加“setup”方法并不总是一个坏主意。例如,Java EE有一个名为ServletContextListener的接口,纯粹是为了进行设置和关闭。 有时甚至可以接受使用您实际上从不直接调用的方法的接口,例如Runnable或Callable接口。
据说,您似乎想要强制开发人员在Manager中实现loadWork()方法,但您也希望将其隐藏在类的用户中。 正如您所说,一个选项是在界面中添加方法,但这样可以访问该方法(您不需要)。如果您不希望该方法具有可见性,我会看到两个选项:
最后,在过度工程和良好设计之间取得平衡。您可以根据具体需求做出决定。然而,没有“完美的解决方案”。