PDA

View Full Version : Design Patterns


argon10
17-06-2005, 12:21
Discussioni, confronti, spunti sui Design Patterns

http://it.groups.yahoo.com/group/Design_Patterns_it/

fek
17-06-2005, 14:01
Bravo!

Sperando che la mia incostanza non mi porti a dimenticarmi anche di questo topic, facciamo un gioco. Scegliete un design pattern, uno alla volta, e discutiamolo.

Che cos'e', che problema risolve, quando applicarlo, sopratutto quando NON applicarlo. Ne esce sicuramente un bel topic, utile a tutti, ad esempio io conosco pochi design pattern bene e discutere gli altri con voi mi spingera' ad impararne altri.

E se iniziate a litigare chiedo personalmente a cionci di fare piazza pulita :)

argon10
17-06-2005, 14:17
A questo link sono in corso dibattiti interessanti

http://it.groups.yahoo.com/group/Design_Patterns_it/

Per esempio sono stati messi a confronto due design patterns creazionali "abstract factory" e "factory method".
Voi che ne pensate?

jappilas
18-06-2005, 00:05
però mi pare che su yahoo le differenze non siano state approfondite... :(

Comunque se non ricordo male, il metodo Factory e l' Abstract Factory sono affini, nel senso che la seconda è una generalizzazione del primo, con un livello di astrazione in più (che rende la factory una pura interfaccia)

Secondo quello che si legge su dofactory.com: il Factory method definisce un' interfaccia per creare un oggetto, ma sostanzialmente lascia alle classi derivate, il compito decidere quale tipo istanziare, e poi crearlo effettivamente, invece la Abstract Factory implementa un' interfaccia per creare oggetti imparentati o comunque dipendenti, ma senza che sia necessario specificare la loro classe concreta (che è un' enunciazione meno chiara :D)

In diagrammi uml:

http://www.dofactory.com/Patterns/Diagrams/factory.gif

http://www.dofactory.com/Patterns/Diagrams/abstract.gif

argon10
20-06-2005, 11:29
...Dunque, riassumendo, è preferibile utilizzare il factory method quando si desidera disaccoppiare il client e il factory method quando è necessario, oltra a disaccoppiare, anche un'implementazione dei product gerarchica?
In quali contesti vi è capitato di utilizzarli?

argon10
23-06-2005, 09:49
Oggi pomeriggio, al centro congressi di Milanofiori, si terrà la Java conference sulla programmazione OOP.
L'ho saputo solo ora e non posso partecipare. :doh:
Qualcuno di voi pensa di prendervi parte?

jappilas
23-06-2005, 15:13
...Dunque, riassumendo, è preferibile utilizzare il factory method quando si desidera disaccoppiare il client e il factory method quando è necessario, oltra a disaccoppiare, anche un'implementazione dei product gerarchica?
In quali contesti vi è capitato di utilizzarli?

in progetti fatti con "colleghi" di uni (oppure da ex colleghi di uni quando hanno trovato impiego), alla fine si optava per qualcosa di affine simile alla factory per i cataloghi e gli archivi di tipo più comune, e alla factory astratta per certi gestionali, (esempio: prestazioni studio medico, a seconda del tipo di prestazione cambiano una serie di strutture dati e relazioni a catena, quindi l' approccio del collega era astrarre il più possibile)

comunque stando a quello che mi hanno detto, anche il fatto di scrivere codice platform-independent (ad esempio un motore 3d, in cui si astragga dalla libreria grafica effettiva, opengl e d3d che sia ) già sarebbe un' applicazione della factory
in effetti potrebbe essere, si avrebbe un' implementazione ridefinita (nella scelta degli oggetti di più basso livello da coinvolgere, e loro istanziazione) e l'interfaccia verso i livelli API superiori, costante, quindi funzioni virtuali... :stordita:
Oggi pomeriggio, al centro congressi di Milanofiori, si terrà la Java conference sulla programmazione OOP.
L'ho saputo solo ora e non posso partecipare. :doh:
Qualcuno di voi pensa di prendervi parte?
effettivamente se qualcuno ci va , farebbe un resoconto? ;)

jappilas
23-06-2005, 23:53
il Visitor : qualcuno sa a che serva e come funzioni? :sofico:

argon10
27-06-2005, 10:01
Lo conosco solo in teoria perchè non ho mai avuto occasione di utilizzarlo.
In breve si dovrebbe utilizzare quando si ha una struttura ad oggetti e si vuole eseguire molte operazioni distinte e scorrelate su di essa.
Ovviamente vale la pena utilizarlo quando la struttura cambia raramente e le operazioni su di essa camiano spesso.
Viceversa sarebbe meglio che tali operazioni si trovassero all'interno delle classi della struttura.

Non so se sono riuscito a spiegarmi molto bene.... lo spero...
A qualcuno è capitato di utilizzarlo in qualche progetto reale?

argon10
28-06-2005, 15:42
Ecco la struttura del pattern: