У меня есть сервлет, который выглядит примерно так:
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;
}
}
}
Мой вопрос такой: есть ли что-то плохое в использовании закрытых вложенных классов таким образом? Я знаю, что у вас обычно есть отдельный публичный класс в отдельном файле, но CacheValue
используется только Cache
. Page
используется только MyServlet
. Организовывать занятия таким образом имеет смысл для меня, но я не старый профессионал в Java, поэтому мне интересны плюсы и минусы.
Использование вложенных классов обычно рассматривается как вопрос стиля? Или предпочтения? Или чего-то, чего следует избегать? Или инструмент для уменьшения сложности?