Это объекты, которые «сидят в стороне» от основной части кода и выполняют часть работы для объекта. Они «помогают» объекту выполнять свою работу.
Например, у многих людей есть вспомогательный объект Closer. Это будет принимать различные закрываемые объекты, например, java.sql.Statement, java.sql.Connection и т. Д., И будет закрывать объект и игнорировать любые ошибки, которые из него выходят. Это происходит потому, что если вы получаете ошибку при закрытии объекта, вы ничего не можете с этим поделать, так что люди просто игнорируют это.
Вместо того, чтобы иметь этот шаблон:
try {
connection.close();
} catch (SQLException e) {
// just ignore… what can you do when you can't close the connection?
log.warn("couldn't close connection", e);
}
разбросаны по кодовой базе, они просто вызывают:
Closer.close(connection);
вместо этого. Например, посмотрите на гуаву closeQuietly .