gpt4 book ai didi

java - 如何在Java中实现类似before_filter的方法?

转载 作者:行者123 更新时间:2023-12-02 07:24:35 25 4
gpt4 key购买 nike

我正在开发一个具有特定 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 来决定是否进一步。

说实话,我不喜欢这种做法。这就是为什么我正在寻找更优雅的东西。

P.S:这样做的原因不是为了改变公共(public) API。我已经实现了代理设计模式,但该模式会更改一些 API。

最佳答案

这对我来说听起来像 Chain-of-Responsibility这正是一种“类似路由”的方法,过滤器或链元素遵循通用接口(interface),并且您可以以类似于链接列表的不同方式组装它们。查询/请求被传递到第一个链元素,然后它将请求传递到其“下一个”链元素,依此类推。每个链元素或过滤器决定是否对请求/SQL 等执行某些操作。

这样,您就拥有了过滤机制,其中每个过滤器(或链元素)都与其他过滤器解耦,并且不需要 if-then-else 梯子。

关于java - 如何在Java中实现类似before_filter的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13721944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com