Programmazione Avanzata

Corso di Laurea Specialistica in Informatica

Anno Accademico 2007/08


Stefano Guerrini

guerrini at di.uniroma1.it



Progettino sull'uso dei Design Pattern in Java



[ Lezioni ] [ Corso 2007-08 ] [ Pagina principale ]

Progettazione di un Mall

Il mall ha un nome ed è composto da negozi e contiene dei clienti. In ogni momento il Mall sa chi sono i clienti presenti al suo interno.

I negozi del mall possono essere di diversi tipi. Ogni negozio vendono degli articoli ai quali supponiamo sia associato un nome, un identificatore, un prezzo e eventuali altre informazioni ritenute utili.

Anche i negozi tengono traccia dei clienti presenti al proprio interno.

Quindi, sia il mall che i negozi devono prevedere metodi per l'ingresso e l'uscita.

Ogni cliente ha un carrello nel quale carica gli articoli che vuole acquistare/

Cosa si deve fare

Si deve disegnare il diagramma delle classi tenendo conto che si devono utilizzare almeo i seguenti pattern:

  • iterator - ad esempio, in tutte le classi in cui è prevista la memorizzazione di una lista o collezione di oggetti è bene prevedere un iteratore che permetta di enumerate tali oggetti

  • abstract factory e/o factory method - ad esempio, per creare i negozi, ma si può usare anche in altre parti del progetto

  • singleton - un uso classico è in congiunzione con abstract factor per garantire l'unica delle factory, ma se ne possono individuare anche altri

  • observer - per garantire che i clienti possano osservare i negozi (ad esempio, per sapere se e quando aggiungono nuovi articoli). Volendo si può anche assumere che i clienti possano osservare anche singoli item (ad esempio, se non disponibili al momento. per sapere quando saranno nuovamente disponibili, oppure per sapere se cambiano prezzo, ecc.)

Le specifiche richieste possono essere estese a piacere, sempre tenendo conto che la progettazione delle caratteristiche che si vogliono aggiungere deve basarsi sull'uso degli opportuni pattern. Ad esempio, si può scegliere quando il cliente deve pagare gli articoli presenti nel suo carrello, se all'uscita di ogni negozio o all'uscita dal mall. Si può anche assumere che degli opportuni dispositivi antitaccheggio sugli articoli (degli observer) che segnalano se un carrello contiene item non pagati al momento dell'uscita dal negozio o dal mall. Inoltre, è possibile utilizzare il pattern composite per assumere che i negozi possano fare offerte su vendite combinate di articoli, oppure che esistano articoli composti da altri articoli.

Lo schema delle classi deve essere accompagnato da una breve relazione in cui si descrivono i pattern utilizzati, soprattutto come sono stati utilizzati, le motivazioni e quali sono state le conseguenze (ad esempio, vantaggi e limiti introdotti dall'uso dei pattern scelti). Sempre facoltativo, si possono prospettare soluzioni alternative a quelle adottate, individuando i conseguenti vantaggi e svantaggi.

Infine, è possibile implementare in Java le classi progettate. Chi vuole può arrivare a realizzare una applicazione completa e funzionante in tutte le sue caratteristiche, ma ci si può limitare a implementare e verificare solo alcune delle caratteristiche progettate.

-- StefanoGuerrini - 27 May 2008

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2008-05-27 - StefanoGuerrini






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback