[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