Non lo so..
Stavo facendo un programma (Mai finito) che permetteva di semplificare polinomi!!
Innanzitutto il programma doveva essere modulare per inserire altri elementi (es i radicali o seno e coseno)!
Così ho realizzato una classe astratta che può essere estesa. le sottoclassi possono essere lanciate e instanziate da una classe principale grazie al paradigma kernel-modulo, ai pattern factory ed observer, e alla reflection, aggiungendo solo una riga al file di configurazione realizzando una gui modulare per svolgere le varie operazioni!!
Poi ho creato altre classi che rappresentavono le entità numeriche:
Letterale, da cui derivavano monomio e polinomio!!
Il mio progetto si ferma qui e a qualche classe di utilità, per me un lavoro del genere è troppo immenso!!!
La mia idea comunque era quella di espandere la sruttura come scatole cinesi con una struttura modulare nei dati e nell'interfaccia!!
Lo so che è un po' arcano ma queste gerarchie possono spiegare meglio: