Implementazione
medio
“Generalizzazione, generalizzazione ma non sovra-generalizzazione” è il punto principale. Desideriamo creare un'implementazione che possa essere usato da altri, i quali a loro volta provano a fare qualcosa che si avvicina alla nostra esigenza, ma che non sia esattamente la stessa. Attenzione però al fatto che troppa generalizzazione uccide l'intento. Il trucco sta nel trovare l'equilibrio. Diteci se pensate che con TreeWalker lo abbiamo fatto.
Precedentemente usavamo l'ereditarietà, mixin ed il meccanismo di ereditarietà multipla per generalizzare/specializzare il comportamento di un classe. Ciò significa organizzare la classe in una gerarchia, generalizzare con un metodo bottom-up e specializzare con un metodo top-down.
Nell'architettura a componenti di Zope 3, l'implementazione sarà diversa ed userà vari componenti:
Le interfacce
Gli adattatori
Gli eventi
La configurazione ZCML
Le viste browser
Questo vi aiuterà a separare le diverse funzionalità in componenti diversi.
Five
Homepage: http://codespeak.net/z3/five/
Five è un prodotto Zope creato per aiutare gli sviluppatori a spostarsi per gradi da Zope 2 all'architettura a componenti di Zope 3. Senza di esso, Zope 2 e Zope 3 sarebbero due mondi completamente separati e sarebbe impossible migrare fra loro. Five è incluso in Zope 2.8 (Five versione 1.2) e in Zope 2.9 (Five versione 1.3). E' realmente molto vicino allo stile di Zope 3 e permette di usare le interfacce, gli adattatori e gli eventi di Zope 3 all'interno di Zope 2 senza doverlo installare.
Five non è molto documentato, purtroppo, perché gli sviluppatori di Zope 2 non conoscono la potenza che Zope 3 potrebbe fornire loro, e quindi viene usato soltanto in pochi progetti. Stiamo cercando di superare questo problema ma non possiamo essere gli unici che ci provano, ecco perché ci auguriamo che questo tutorial possa aiutarvi a comprendere Five e Zope 3.
