Ipotizziamo di avere costruito, come nell'esempio iniziale, la videata principale del SW con i menù. Nel menù "file" abbiamo inserito la voce "Apri", che attiva l'omonima function Apri():
function Apri()
{
/* punto 1: videata pop-up che richiede il nome del file da aprire*/
/* punto 2: istanziazione di un nuovo oggetto "document"*/
new document(nomefile)
}
L'oggetto "document" appartiene alla classe workWindow e la sua istanziazione genera le seguenti attività:
- tramite l'interfaccia in/out col filesystem viene caricato un file;
- tramite l'apposita interfaccia viene aggiornata la struttura di stato della controlWindow: viene segnalato che un documento è stato aperto ed è attualmente in stato "attivo" nella frame x + "salvato".
Adesso ipotizziamo di scegliere, dal menù "modifica", una funzione per operare sul file aperto:
- viene istanziato un nuovo oggetto di tipo workWindow, destinato non alla visualizzazione ma all'elaborazione;
- l'oggetto controlla sulla struttura di stato se ed in quale frame esiste un oggetto "document" attivo;
- ricevuta risposta affermativa, il nuovo oggetto lavora e poi cambia lo stato dell'oggetto "document" da "salvato" in "non salvato".
Anche se le funzionalità richieste al SW sono complesse, procedendo con questo metodo alla fine otterremo:
- una struttura ordinata, in cui la complessità è stata governata;
- un codice altamente riutilizzabile;
- un volume complessivo di pochi KB, che permette al nostro SW di essere facilmente distribuito in rete;
- un aspetto grafico pari alla nostra abilità di generare le videate HTML.