Originariamente inviato da giuseppe500
ciao.
parto con la domanda:
1)ho una serie di forme 2d che devono essere estruse in 3d e hanno le proprietà necessarie per estrudere che sono piu o meno le stesse , quello che è diverso è il modo di estrarre queste informazioni(che è comunque precedente all estrusione e non relazionato con questa) e il modo di estrudere dalle proprietà.
Diciamo che tu hai delle forme 2d che hanno in comune il fatto che possono essere estruse in 3D.

premessa:
penso (e forse sbaglio) che un applicazione ad oggetti possa essere piu o meno oop spinta.
mi chiedo se è sempre meglio spingere al massimo su questa astrazione,(l'oop), ho visto che a volte non è necessario e invece a volte è indispensabile , premetto che di tempo ne ho e posso fare le cose bene ma indipendentemente da questo mi sembra che a volte "spingere" troppo sia controproducente , quasi una malattia , un brutto metodo.
Per me non c'é troppa o troppo poca OOP, c'é solo un buon design o un cattivo design (spesso non c'é proprio design). Non so se l'applicazione che stai realizzando sia banale o no in termini di righe di codice, ma tu quanto tempo hai speso, carta e penna alla mano, per fare l'analisi e successivamente il design del tuo progetto?

dopo queesta premessa chiedo:
sia meglio creare un tipo base CExtruder e creare una factory con un parametro intero del tipo di estrusione che crea il tipo derivato(factory method?) e nel tipo derivato avere ad es una funzione estrudi che sia polimorfica nelle varie implementazioni delle forme relative al parametro.

mi chiedo se puo essere una buona implementazione , ma puo essermi utile?
In che senso?

per es se una forma in piu viene aggiunta basta derivare da CExtruder e aggiungere un parametro al factory method?


chiedo a voi è un esempio , mi è capitato e l'ho fatto ad oggetti e forse non è neanche tanto spinto.

scusate se dico degli strafalcioni , e correggetemi ma ho notato questa cosa della "sovra programmazione".

ciao.
A volte per capire la qualità di un'astrazione basta leggere a voce alta e usare un po' di logica.
Prova a leggere a voce altra: una forma 2d è un Cextrude. Non so a te, a me suona malissimo.