我正在开发一个带有特定 API 的定制框架,现在我正在重构它。
我必须解决的问题之一是创建一种类似路由的方法,以根据查询深度和其他属性将查询重定向到不同的类。以下是方法:
class Blah {
public Object query1(){...}
public Object query2(){...}
}
我必须把它改成类似
class Blah implements BeforeFilter{
@Override
protected void filter()
{
//decide to call which query method
//then redirect the request to query
}
public Object query1(){...}
public Object query2(){...}
}
实现上述想法的一种非常传统的方法是在每个 query() 方法中添加一个 if/else 来决定是否走得更远。
老实说,我不喜欢这种方法。这就是为什么我在寻找更优雅的东西。
PS:这样做的原因不是为了更改公共 API。我已经实现了代理设计模式,但那会改变一些 API。