Sto lavorando con lo standard JEE. Ho i seguenti livelli: JPA (Eclipse Link), Data Access, Business Logic e JSF (Primefaces). Primefaces utilizza pattern di progettazione MVC, quindi il livello di presentazione contiene ManagedBeans (controller).
Quando creo un oggetto da una richiesta utente, devo contromettere l'oggetto nel ManagedBean e passarlo come l'intero oggetto alla logica, oppure devo passare gli attributi di quell'oggetto alla logica:
public void businessLogicMethod(String clientAttributeA, int clientAttributeB...)
o
public void businessLogicMethod(Client client)
Non riesco davvero a decidermi. Funzionalmente, entrambe le opzioni fanno lo stesso ... Ma ci sono vantaggi di qualità del software da uno all'altro? C'è qualche motivo per progettare il livello per costruirlo nel controller o nel modello? C'è qualche altra ragione?
Uno dei vantaggi che vedo in quello superiore è che i servizi del diagramma di distribuzione avranno i parametri dichiarati nelle interfacce di servizio, quindi ci sono molte più informazioni nel diagramma.