Cuando se trata de objetos que requieren datos conocidos solo en tiempo de ejecución, como un nombre de usuario y contraseña, ¿dónde debería ocurrir la instanciación de objetos: utilizando nuevo, en una fábrica o en un contenedor DI?¿Contenedor DI, de fábrica o nuevo para objetos efímeros?
Por ejemplo, tan sólo pudiera new
un objeto una vez que tenga los datos:
UserCredentials creds =
new UserCredentials(dialog.getUsername(), dialog.getPassword());
O, podría usar una fábrica:
UserCredentials creds =
CredentialsFactory.create(dialog.getUsername(), dialog.getPassword());
O, podría usar un proveedor dentro de una Contenedor DI (que en este caso sería esencialmente una fábrica impulsada por parámetros). [Código de muestra omitido.]
Parece incorrecto utilizar el contenedor DI para algo tan simple pero también parece incorrecto no usarlo al máximo.
Ni siquiera había pensado conscientemente acerca de la fábrica estática frente a la fábrica abstracta. Gracias por el comentario de valor añadido en ese sentido. –