En C++ tenemos el patrón Adquisición de recursos es la inicialización (RAII), que simplifica enormemente la gestión de recursos. La idea es proporcionar algún objeto de envoltura para cualquier clase de recursos. El destructor del objeto de envoltura es entonces responsable de liberar los recursos, cuando está fuera de su alcance. Por ejemplo:Es C++ como la administración de recursos posible en Java
{
auto_ptr<int> smartPointer = new int;
// some other code
} // the memory allocated for the int is released automatically
// by smartPointer's destructor
El uso más común son punteros inteligentes. Pero hay muchos otros tipos de recursos (archivos, mutexes, sockets, etc.) que se pueden gestionar exactamente de la misma manera.
En Java uno no tiene que preocuparse por la administración de la memoria. Pero todos los otros tipos de recursos permanecen. Hay finalmente el bloque, pero su uso es bastante inconveniente, especialmente cuando se pueden lanzar muchas excepciones diferentes.
Entonces, ¿mi pregunta es si hay algún patrón de Java que proporcione una funcionalidad equivalente a C++ RAII? De lo contrario, comparta sus mejores prácticas en esta área (en lugar de la final, a menos que se use de alguna manera sofisticada).
Consulte esta pregunta: http://stackoverflow.com/questions/194261/raii-in-java-is-resource-disposal-always-so-ugly-was-i-had-a-dream – Eclipse
También: http : //stackoverflow.com/questions/477399/does-java-support-raii-deterministic-destruction – Eclipse
"que simplifica extremadamente la gestión de recursos" ¿Estás bromeando? – hasen