Estoy conteniendo el "objeto primario" (con la mayoría de las características) dentro de un "objeto auxiliar" que proporcionará métodos de conveniencia. Solo tengo una interfaz disponible, aparte de un objeto devuelto con esa interfaz de un método de fábrica. Estoy pensando que una buena manera de "extender" este objeto es la composición, pero el problema es que mi superclase debe implementar la interfaz del objeto primario, que sería aproximadamente 600 líneas de código de código auxiliar.¿Cuál es la forma más corta de delegar métodos no implementados en un objeto contenido en Java?
Claramente, una solución sencilla pero detallada sería completar todos los resguardos para que simplemente llamen a los métodos del objeto primario. ¿Hay una mejor manera que esto en Java? En otros idiomas con los que estoy familiarizado, habría formas de hacer delegación automática para métodos que no están implementados en el objeto auxiliar.
Ejemplo:
class Helper implements Interface { Primary primary; Helper(Primary _primary) { primary = _primary; } void helper() { doStuff(); } // 500 lines of this void stub() { primary.stub(); } }
Nota:
plan original era sólo tiene que utilizar expresiones regulares para reemplazar todos los TODOs ramal en Eclipse con las llamadas reales. Sin embargo, buscaré una herramienta Eclipse que lo haga automáticamente. Además, parece que la extensión de la interfaz o el uso de Proxy es mejor al final, por lo que perseguiremos eso.
Eclipse puede hacer esto por usted. Haga clic derecho -> Fuente -> Generar métodos delegados. –