Sto lavorando su un'applicazione Spring standard in cui il livello DAO restituisce entità al livello di servizio e il livello di servizio restituisce VO ad altri servizi e controller.
In un certo scenario, abbiamo un VO che assomiglia a questo:
public class MyContainerVO{
private Integer containerId;
private String containerName;
private List<ContainerChild> childList;
//usual setters and setters
public Map<String,String> getChildMap(){
//creates a K,V map from the child list
//with the key being child.getName() and value being child.getId()
}
}
Sono confuso se questo metodo getChildMap()
debba essere in MyContainerVO o debba essere spostato in una classe di utilità. So che non ci dovrebbe essere alcuna logica di business nel VO, ma a mio parere il metodo getChildMap()
restituisce solo i dati contenuti in MyContainerVO in un formato diverso e quindi non si qualifica come logica aziendale.
Non sono riuscito a trovare alcuna risposta in SO o ai programmatori che si occupano di tale scenario; la maggior parte riguarda la logica di business in VO che colpiscono altre classi creando un accoppiamento ravvicinato che è una cattiva pratica.
Suggerire cortesemente quale sia l'approccio migliore in questo scenario, o per favore indicare alcuni link che spiegano questo in dettaglio.