<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
            "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">

<channel>
<title>[SIForge.org] Principi del Design Orientato agli Oggetti </title>
<link>http://www.siforge.org/articles/forum/../../articles/2003/02/09-oo-principles.html</link>
<description>Commenti all'articolo "Principi del Design Orientato agli Oggetti "</description>
<language>it</language>
<managingEditor>redazione@siforge.org</managingEditor>
<webMaster>redazione@siforge.org</webMaster>

<image>
<title>SIForge.org</title>
<url>http://www.siforge.org/images/skin/default/sidebar/icon32.gif</url>
<link>http://www.siforge.org/</link>
</image>

<item>
<title>yag (22 nov 2004, 15:28:02)</title>
<link>http://www.siforge.org/articles/forum/index.cgi/show/t20030209__oo__principles#17478098</link>
<description>Ho una domanda un p&#242; pi&#249; diretta :
----------------------------------------------------------
con un semplice ragionamento mi pare di capire che la Microsoft sviluppando ado e correlati abbia gi&#224; studiato e sotto certi aspetti risolto questo genere di problemi (quelli sollevati da Pescio nell'articolo in questione) 
ora mi domando (in un progetto non reale) 
ipotizzando che io voglio solo usare ado ho quindi fornito dal framework una architettura che mi permette di fare cose del genere 

//presi dall'articolo di Pescio 
Record&amp; r = ....
r[ &quot;campo1&quot; ] = 1234 ;
r[ &quot;campo2&quot; ] = &quot;abc&quot; ;

ora la query &quot;select * from fornitori&quot; dove va messa ? 
Domanda un p&#242; grezza come dire ma porta subito al sodo quello che serviva a me .... 

:) 
</description>
</item>

<item>
<title>yag (22 nov 2004, 15:20:54)</title>
<link>http://www.siforge.org/articles/forum/index.cgi/show/t20030209__oo__principles#27670713</link>
<description>Hehe ci sono gi&#224; arrivato a quell'articolo :) 
..altre risorse relative al mapping ? </description>
</item>

<item>
<title>Stefano Fago (22 nov 2004, 08:58:38)</title>
<link>http://www.siforge.org/articles/forum/index.cgi/show/t20030209__oo__principles#75583400</link>
<description>...un punto di vista interessante alle problematiche proposte sono le architetture Record-Oriented...L'idea &#232; quella di applicativi il cui CORE si esprime nella netta separazione tra vista e struttura database-oriented(cursori, record e tabelle) su cui prende il via la logica di business...Per averne una sana trattazione provate qui: &lt;a href='http://www.eptacom.net/pubblicazioni/pub_it/'>http://www.eptacom.net/pubblicazioni/pub_it/&lt;/a> ...E' il sito di Carlo Pescio uno dei massini Guru italiani che ha fatto una trattazione omogenea a riguardo!!!!....
Attenzione per&#242;...Questa idea trova facilmente limiti se si va incontro alle problematiche di scalabilit&#224; o flessibilit&#224; del business, in termini di modellazione! Viene inoltre inserito un livello di complessit&#224; che potrebbe essere ridondante in certe situazioni rispetto al semplice mapping!!!!
Buon LAvoro!!!!


STEFANO FAGO</description>
</item>

<item>
<title>yag (20 nov 2004, 15:42:59)</title>
<link>http://www.siforge.org/articles/forum/index.cgi/show/t20030209__oo__principles#33308838</link>
<description>per caso ho letto il commento sopra e mi sono reso accorto che trattava le stesse problematiche mie ...

ironia della sorte :-) siamo in tanti ad avere probleme hehehe</description>
</item>

<item>
<title>yag (20 nov 2004, 15:38:58)</title>
<link>http://www.siforge.org/articles/forum/index.cgi/show/t20030209__oo__principles#46264443</link>
<description>inserisco qua la mia domanda anche se non &#232; legata... a questo argomento :) 
ve lo faccio io un forum se volete :-) 
-----------------------------------
ho questo problema  ho un database con una tab fornitori 
poi un dataset (preso dal framework) ed una grid (controllo di windows) ed una classe fornitori .
riassumento:
tab fornitori
dataset (preso dal framework) 
grid (controllo di windows)
class fornitori 

ora mi domando come posso legare tutte queste assieme ? 
ipotizzando (caso pi&#249; che classico :-) ) 
una select del genere &quot;select * from fornitori&quot; 
come la gestisco a livello di OO e linguaggio di programmazione (nel mio caso c++) 
tempo fa ho letto un articolo su CP che parlavo dell'object relation mapping c'era pure nel codice ma nn so perch&#232; non mi ha convinto troppo complesso (nel senso disordinato) , troppo limitato (a mio avviso non ricompriva tutti i casi) ed per altri motivi cap. cmq che in un articolo non si pu&#242; scrivere un framework . quindi chiedevo altre soluzioni pi&#249; o meno eleganti complicate ecc. 
</description>
</item>

<item>
<title>anonimo (05 dic 2003, 17:32:40)</title>
<link>http://www.siforge.org/articles/forum/index.cgi/show/t20030209__oo__principles#17009796</link>
<description>...Allora...Due punti:

1) Dal punto di vista teorico sei nella classica situazione di mapping tra oggetti e db relazionale e a tal proposito c'&#232; una vasta bibliografia...Pensa al fatto che la specifica Enterprise Java Bean(J2ee) nasce per risolvere questa problematica...

2) oltre agli ejb, ci sono pi&#249; prodotti di mapping che fanno il lavoro per te...Tra questi quello che nel mondo opensource sembra prendere piede &#232; HIBERNATE...La sua diffusione &#232; dovuta alla flessibilit&#224; del sistema di mapping object/db, al sistema di autogenerazione file-descriptor/classi e alla capacit&#224; di essere cross-db, dato che supporta molteplici dialetti...

Se il tuo obiettivo non sono solo gli aspetti pratici(lavoro), per quelli teorici trovi molto in rete...Se vai sulla technet di Oracle hai tanti esempi, che coinvolgono anche lo step XML...Se navighi poi sui progetti open source troverai diversi prodottini ognuno con la loro teoria; tema: O\R MAPPING!...

...facci sapere...</description>
</item>

<item>
<title>Gildo (27 nov 2003, 17:00:33)</title>
<link>http://www.siforge.org/articles/forum/index.cgi/show/t20030209__oo__principles#53236380</link>
<description>OCP, DIP, ISP, LSP ... le sigle possono essere ostiche, per&#242; i concetti che sintetizzano mi piacciono: ho scoperto 
di averli metabolizzati ancor prima di averne chiara una formalizzazione o una classificazione: &#232; naturale rispettare queste semplici regole, ma non sempre &#232; facile.

Il problema che sto affrontando in questi giorni sembra avere le caratteristiche giuste per qualche approfondimento.

Sono alle prese con una gerarchia di classi Prodotto - ProdottoBase, ProdottoAlimentare, ProdottoCosmetico - con 
evidenti relazioni di parentela.

I prodotti sono registrati su un unica tabella di Database che prescinde dalle specializzazioni. Ogni singolo prodotto &#232; riconoscibile da una chiave 'ProductID' e contiene un'informazione che permette di riconoscerne il sottotipo.

Il Client ha la responsabilit&#224; di istanziare un oggetto 'prodotto' acquisendo informazioni dal Database. Dispone per&#242; solo della chiave 'ProductID' e non conosce il sottotipo specifico.

Come faccio dunque a istanziare un oggetto con il sottotipo corretto avendo a disposizione unicamente una chiave per il Database?

Soluzione 1
Una soluzione potrebbe essere quella di progettare un metodo statico su ProdottoBase. Questo metodo estrae 
l'informazione sul sottotipo attraverso la chiave, istanzia l'oggetto correttamente e lo ritorna al chiamante. Funziona, ma implica che la classe base conosca le classi da essa derivate con buona pace di OCP. 
Soluzione 1 scartata.

Soluzione 2
Ho pensato allora di riciclare perte della soluzione1 delegando il compito di creazione dell'istanza a un metodo 
factory parametrizzato ospitato da una classe 'ProductCreator'. Anche qui OCP trema perch&#232; l'aggiunta di una nuova specializzazione mi costringe a ritoccare anche 'ProductCreator', ma almeno posso ipotizzare una classe base che non sa nulla dei figli e questo mi &#232; sembrato comunque un risultato importante.
Alla fine tuttavia la nuova classe crea problemi agli analisti perch&#232; non appartiene al dominio del problema.
Soluzione 2 scartata.

A corto di idee non mi rimane che chiedere:
c'&#232; una soluzione 3 ? 
Grazie</description>
</item>

<textinput>
<title>Ricerca</title>
<description>Cerca negli articoli pubblicati</description>
<name>s_query</name>
<link>http://www.siforge.org/articles/search/</link>
</textinput>

</channel>
</rss>
