【问题标题】:Should class names contain name of package?类名应该包含包名吗?
【发布时间】:2022-01-25 20:25:40
【问题描述】:

我必须在 Java 中实现一个日志记录机制。 所以我使用 JEE 并使用 RequestFilter 和 Interceptors。 我把所有这些都放在一个名为 logging 的包中。

我的课程是:RequestFilter、ResponseFilter 和 Constants

所以我的问题。是否可以省略登录类名,因为它已经存在于包中?

或者我应该这样做。包记录和重复记录:RequestFilterLogging、ResponseFilterLogging、ConstantsLogging

【问题讨论】:

    标签: java algorithm


    【解决方案1】:

    这真的取决于几个问题:

    1- RequestFilter 的目的是始终只记录吗?

    2- 是否有计划对其进行修改以添加更多逻辑?比如自定义请求头等?

    3- 您是否计划拥有超过 1 个 RequestFilter 并指定优先级?

    如果您的设计是有多个请求过滤器,每个过滤器都有自己的自定义逻辑,并且有优先级,那么我会这样做:

    com.app.requestfilters
          --> LoggingRequestFilter
          --> HeadersRequestFilter
    

    如果您的设计是让 1 个 RequestFilter 做很多事情,而不仅仅是记录:

    com.app.requestfilters
           --> CustomRequestFilter 
    

    在我看来,最好不要重用您正在使用的库/框架中存在的类名:

    在 Apache Tomcat 中,有一个 RequestFilter,如果你要扩展这个类,那么你的应该是一个不同的名字

    https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/filters/RequestFilter.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 2012-04-03
      • 2010-11-22
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      相关资源
      最近更新 更多