java - 在我的 Java Servlet 中使用私有(private)类有什么问题吗?

标签 java servlets coding-style scope private

我的 Servlet 看起来像这样:

public class MyServlet extends Servlet {

  private class Page {

    private Page(HttpServletRequest request, HttpServletResponse response) {
      /* Do stuff */
    }
  }

  protected void doGet(HttpServletRequest request, HttpServletResponse response) {

    Page page = new Page(request, response);

    /* Do other stuff */
  }

}

我还有一个看起来像这样的缓存:

public class Cache {

  private Hashtable<String, CacheValue>;

  public Cache() {
    Hashtable<String, CacheValue> table = new Hashtable()<String, CacheValue>;
  }

  public void put(String key, String value) {
    table.put(key, new CacheValue(value));
  }

  private class CacheValue {

    private value;

    private CacheValue(String value) {
      this.value = value;
    }
  }
}

我的问题是:以这种方式使用私有(private)嵌套类有什么问题吗?我知道您通常会在单独的文件中拥有单独的公共(public)类,但 CacheValue 只能由 Cache 使用。 Page 只能由 MyServlet 使用。以这种方式组织类对我来说很有意义,但我不是 Java 的老专家,所以我对其中的优点和缺点很感兴趣。

使用嵌套类通常被视为一种风格问题吗?还是偏好?或者有什么需要避免的?或者降低复杂性的工具?

最佳答案

不,将事情保密并没有什么错。

当代码难以访问时,依赖于它的东西就会减少,这会给你更多的修改自由。

但是,您应该声明您的CacheValuePagestatic,因为它们不访问任何封闭实例的成员。

关于java - 在我的 Java Servlet 中使用私有(private)类有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704906/

相关文章:

java.lang.NoClassDefFoundError : sun/security/ssl/HandshakeStateManager

java - 线条在应该重叠时却没有重叠 Java Swing

java - JSON.parse(result.responseText) 中的无效字符;

coding-style - 缩短/避免 if 语句中的级联空检查的方法

Javascript统一回发

java - 使用线程发出数据库请求

c# - 从退出的字符生成字符串

java - Tomcat:War文件部署在本地但不在在线服务器上

java - Java 中的内存高效文件/图像上传?

c++ - VS2008 c++ 编译器会优化以下 if 语句吗?