|
|
Introduction
|
L'Aspect Oriented Programming può essere definita come una tecnologia di sviluppo del software ulteriore, dopo la programmazione
orientata agli oggetti.
Il concetto chiave attorno a cui si basa l'AOP è la "separazione dei compiti" (SOC, separation of
concerns).
Nei progetti software realizzati in OOP, a prescindere dal linguaggio utilizzato, ci si trova spesso nell'avere
delle strutture e/o gerarchie di classi molto complesse. Se si analizza poi l'applicazione da un punto di vista
dei "compiti", spesso si scopre che essi coinvolgono, a vario titolo, diverse classi se non tutte.
Obiettivo dell'AOP e' quello di permettere di scrivere, in modo chiaro e concentrato in un unico punto, tutto il codice
che le varie classi coinvolte dovranno includere e/o eseguire per l'espletamento di un determinato compito.
Per esempio, la gestione di una semplice "Button Bar", può dipendere da vari pezzi di codice, dallo stato di diversi
oggetti (il documento corrente, il suo stato, la presenza di uno o più dispositivi, i parametri di configurazione correnti)
Ogni oggetto coinvolto dovrà quindi contribuire esponendo metodi e membri specifici per gestire la "button bar".
Lo scrivere questi metodi e l'aggiungere i necessari membri alle varie classi significa in qualche modo sparpagliare
il "compito" dell'aggiornamento della Button Bar su tutto il codice dell'applicativo, rendendo difficile poi la sua lettura e la sua manutenzione.
Il codice strettamente legato alla ButtonBar sarà quindi "concentrato" sotto la classe, supponiamo "CButtonBar",
ma il codice necessario a far sì che la button bar si "aggiorni" a seconda dello stato corrente dell'applicativo non potrà
che essere incluso nelle varie classi di competenza.
L'AOP propone quindi una soluzione: il codice dell'attività "Aggiorna ButtonBar", viene scritto in un'unico punto del
codice, ovvero in un "Aspetto" scritto all'uopo. Questo permette, a prescindere dal tipo di button bar e di applicativo
realizzato, di avere tutto il codice relativo all'aggiornamento della Button Bar "concentrato" e quindi facilmente manuntenibile
e modificabile secondo esigenze.
Detto in altri termini, se gli oggetti permettono la definizione di un'entità, gli aspetti definiscono le azioni collaborative
che le entità (oggetti) possono compiere.
Per ulteriori informazioni sull'AOP vi consiglio di visitare il sito AOSD.NET
che è la home page per tutti i lavori relativi all'AOP. Da qui è possibile trovare un bel po' di informazioni e documenti utili.
Un'altro sito sicuramente interessante è il sito relativo al progetto aspectj,
ovvero i tools necessari per usare l'AOP in Java.
Così come il aspectc, per quanto riguarda il C++.
|
|
AMBIENTE DI SVILUPPO AOP dtclaop!!!!
|
Se vi interessa, ho in sviluppo un'applicazione IDE in sviluppo, per utilizzare al meglio il DTclaop.
Se vi interessa, ecco alcune pagine dedicate al "DevTcl" :)
|
Copyright © 2002, by eriskouma.com. All rights reserved. last modified on: Tue, 08 July 2003
|
|