很抱歉,如果这被问到,但我一直在想,并且无法谷歌解决方案而不是为了尝试的运气。
在一个类中实现Command模式时,这个单方法接口会在所有地方不断弹出。
public interface Command {
void execute();
}
然后它会被重复使用很多次:
public void doAction1()
{
perform(new Command () {
@Override
public void execute()
{
//do some crazy stuff
}
});
}
public void doAction2()
{
perform(new Command () {
@Override
public void execute()
{
//do some event crazier stuff
}
});
}
public void doAction3()
{
perform(new Command () {
@Override
public void execute()
{
//do a barrel roll
}
});
}
private void perform(Command command)
{
command.execute();
}
不同的命名,不同的模块,甚至不同的软件---但是这一次反复重新实现,杂乱的源代码并且基本上没有什么新东西。
是否有任何通用的OOB单方法接口可以使用而不是每次我需要像lambda一样的句子时创建我自己的接口?以这种方式使用Runnable是否可以?难道不会在未来的源代码阅读器的脑海中造成混乱吗?
PS:现在,我知道,有一个带有lambdas的java 1.8和所有,但在我的工作中我们暂时坚持1.6(企业客户是如此的企业),所以我很欣赏这里的一些考古帮助。