[Php-it] Estendere una classe o incorporare un oggetto?
Domenico L.
domenico.lorusso at pleiade.it
Wed Feb 7 14:33:27 CET 2007
Andrea Colanicchia ha scritto:
> Io ci vedo bene il pattern "decorator"
> (http://en.wikipedia.org/wiki/Decorator_pattern).
> [..]
>
> Se devi aggiungere un altro oggetto O, devi fargli incorprare V
> (O->V->F->A) e così via.
>
> Non se se è questo che ti serviva...
uhm... nì, nel senso che il mio problema sta nel fatto che alcune
proprietà non pubbliche devono essere accedute da altre classi.
Nel tuo esempio
O->V->F->A
Immagina che A abbia la proprietà *privata* teta e che V debba potervi
accedere.
Questo problema non sono riuscito a risolverlo.
Altre problematiche li incontro quando necessito di gestire alcuni
metodi di V che possiedono la logica di utilizzo dei dati di A ma i
metodi che fanno inferenza su questi dati necessitano di un accesso
diretto...
alla fine ho optato per una soluzione che mette insieme MVC, factory e
decoration.. (anche se non è linearissima, ho dovuto accettare dei
compromessi:-( )
Ho la classe Control (C)che fa pochissime cose ma è di fatto il Factory
Mette a disposizione i metodi per impostare e creare il VariableModel
(VM), la Form (F) e il builder (B)
F e B hanno il metodo link che permette di impostare le proprietà
private _parent (riferiemnto a C) e _vm ( riferimento a VM )
In questo modo F, che implementa l'interfaccia di acquisizione dati, e
B, che implementa la metodologia di costruzione dell'output) posso
accedere direttamnte a VM
VM dal canto suo mette a disposizione molti (troppi) metodi per accedere
e manipolare i propri dati
Volendo potrei fare in modo che F, C e B condividano con VM l'attributo
teta di cui sopra, ma per ora cerco di evitarlo :-)
Prima bastava istanziare una classe ora occorre istanziarne 4.
Per ovviare mi occorre rendere C il componente (non concreto)
dell'esempio di cui hai postato il link.
Aggiungendo i metodi più comuni dei 4 oggetti
E' corretto?
ciao
--
Domenico L. icq: 645 44 861
per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]
More information about the Php-it
mailing list