Complimenti davvero, spiegazione magistrale e tono di voce che massaggia il cervello mentre si impara! Doti da non sottovalutare. Spero di vedere presto un video su altri design pattern, oggi ne cercavo uno per il decorator e sarebbe stato bellissimo vederne uno fatto così
mi sfugge il vantaggio rispetto a un costruttore di default + normali setter, a parte non dover ripetere la variabile per ogni setter. Puntando sulla sicurezza ma perdendo in flessibilità forse si potrebbe obbligare a scrivere tutti i setter (eventualmente vuoti)
Se hai un costruttore con dieci parametri o una costruzione dove parametri dipendono da altri non puoi operare come dici, inoltre mettere tutti setter pubblici implica che i tuoi oggetti sono mutabili e questo è il male. Qua il mio oggetto negozio è immutabile e la mutabilita causata dalla necessità di costruire l'oggetto come tu proponi è una pratica abbastanza pericolosa dal punto di vista dell'architettura del software
è più leggibile ti faccio un esempio Query q = new Query("cod_art, desc_art", "tabella_articoli", "cod_art = 100", ""); Query q = new Query("cod_art, desc_art", "tabella_articoli", "des_art like '%prova%' and active = '1' ", "cod_art desc"); si capisce poco o niente, non è intuitivo se invece faccio Query q = Query.Build().select("cod_art,desc_art").from("tabella_articoli").where("cod_art = 100").build(); Query q = Query.Build().select("cod_art,desc_art").from("tabella_articoli").where("des_art like '%prova%).and("active = '1'").orderby("cod_art desc").build(); diventa più leggibile, sembra quasi una vera query
@@bstefano79 io pensavo a una cosa di questo tipo: Negozio n = new Negozio(); // set parametri di default n.setProprietario(...); n.setIndirizzo(...); ecc. se serve altrimenti rimangono i valori di default
@@piolopioli1903 costruttore privato, nessun setter ma solo getter, diventa immutabile, se modifichi una variabile d'istanza devi creare un nuovo oggetto.
Complimenti davvero, spiegazione magistrale e tono di voce che massaggia il cervello mentre si impara! Doti da non sottovalutare.
Spero di vedere presto un video su altri design pattern, oggi ne cercavo uno per il decorator e sarebbe stato bellissimo vederne uno fatto così
Complimenti Prof, i tuoi tutorial come le tue lezioni sono sempre molto chiare. Grazie
Grazie e complimenti Prof, i suoi video sono molto chiari e interessanti. Spero che continui con questa serie di video
Complimenti Prof!!
Volevo chiederle se parlerà in futuro del Factory Pattern o se ne ha parlato mai su un altro video.
Sarei molto curioso.
Illuminante grazie!!
bella lezione però prof alzi un po' il microfono
Interessante. Se dovessi implementare questo pattern in Python come faresti?
Non cambia nulla, ci sarebbe sempre una classe builder Che costruisce l'oggetto. I pattern sono indipendenti dal linguaggio di programmazione
mi sfugge il vantaggio rispetto a un costruttore di default + normali setter, a parte non dover ripetere la variabile per ogni setter. Puntando sulla sicurezza ma perdendo in flessibilità forse si potrebbe obbligare a scrivere tutti i setter (eventualmente vuoti)
Se hai un costruttore con dieci parametri o una costruzione dove parametri dipendono da altri non puoi operare come dici, inoltre mettere tutti setter pubblici implica che i tuoi oggetti sono mutabili e questo è il male. Qua il mio oggetto negozio è immutabile e la mutabilita causata dalla necessità di costruire l'oggetto come tu proponi è una pratica abbastanza pericolosa dal punto di vista dell'architettura del software
è più leggibile ti faccio un esempio
Query q = new Query("cod_art, desc_art", "tabella_articoli", "cod_art = 100", "");
Query q = new Query("cod_art, desc_art", "tabella_articoli", "des_art like '%prova%' and active = '1' ", "cod_art desc");
si capisce poco o niente, non è intuitivo
se invece faccio
Query q = Query.Build().select("cod_art,desc_art").from("tabella_articoli").where("cod_art = 100").build();
Query q = Query.Build().select("cod_art,desc_art").from("tabella_articoli").where("des_art like '%prova%).and("active = '1'").orderby("cod_art desc").build();
diventa più leggibile, sembra quasi una vera query
@@ProfAndreaPollini non mi è chiaro perchè è immutabile ma per questo appena possibile proverò a trascriverlo e a provarlo
@@bstefano79 io pensavo a una cosa di questo tipo:
Negozio n = new Negozio(); // set parametri di default
n.setProprietario(...);
n.setIndirizzo(...);
ecc. se serve altrimenti rimangono i valori di default
@@piolopioli1903 costruttore privato, nessun setter ma solo getter, diventa immutabile, se modifichi una variabile d'istanza devi creare un nuovo oggetto.
Queste assomigliano molto a quelle che si chiamano "Fluent API"
Esattamente. Quelle API implementano proprio questo pattern