Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #20682 > unrolled thread

trait per decoratore standard

Started byalex <1j9448a02@lnx159sneakemail.com.invalid>
First post2016-04-22 11:10 +0200
Last post2016-04-22 07:58 -0700
Articles 13 on this page of 53 — 3 participants

Back to article view | Back to it.comp.www.php


Contents

  trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-22 11:10 +0200
    Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-22 10:36 +0100
      Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-22 12:08 +0200
        Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-22 14:39 +0100
          Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-22 16:31 +0200
            Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-22 18:16 +0100
              Re: trait per decoratore standard fmassei@gmail.com - 2016-04-22 10:58 -0700
                Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-22 20:00 +0000
                  Re: trait per decoratore standard fmassei@gmail.com - 2016-04-22 14:01 -0700
                    Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-23 17:56 +0000
                      Re: trait per decoratore standard fmassei@gmail.com - 2016-04-24 22:16 -0700
                        Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-25 14:10 +0100
                Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-22 22:26 +0200
              Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-22 22:18 +0200
                Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-22 20:46 +0000
                  Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-23 10:30 +0200
                    Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-23 11:07 +0200
                      Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-23 11:32 +0200
                      Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-23 17:50 +0000
                        Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-24 10:36 +0200
                          Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-24 10:50 +0200
                          Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-24 11:28 +0000
                            Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-24 18:48 +0200
                          Re: trait per decoratore standard fmassei@gmail.com - 2016-04-24 22:19 -0700
                    Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-23 17:45 +0000
                      Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-24 10:26 +0200
                        Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-24 11:26 +0000
                          Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-26 14:50 +0200
                            Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-26 15:07 +0100
                              Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-26 21:11 +0200
                                Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-26 19:31 +0000
                                  Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-26 22:02 +0200
                                    Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-26 20:39 +0000
                                      Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-27 16:10 +0200
                                        Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-27 15:16 +0100
                                          Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-27 17:26 +0200
                      Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-29 17:42 +0200
                        Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-29 17:12 +0100
                          Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-30 13:20 +0200
                        Re: trait per decoratore standard fmassei@gmail.com - 2016-04-30 08:06 -0700
                          Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-30 21:26 +0200
                            Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-30 19:42 +0000
                              Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-30 23:20 +0200
                                Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-30 21:43 +0000
                                  Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-05-01 10:34 +0200
                              Re: trait per decoratore standard fmassei@gmail.com - 2016-04-30 14:38 -0700
                                Re: trait per decoratore standard Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-30 21:41 +0000
                                Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-05-01 10:45 +0200
                                  Re: trait per decoratore standard fmassei@gmail.com - 2016-05-01 09:02 -0700
                                    Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-05-02 10:45 +0200
        Re: trait per decoratore standard fmassei@gmail.com - 2016-04-22 07:12 -0700
          Re: trait per decoratore standard alex <1j9448a02@lnx159sneakemail.com.invalid> - 2016-04-22 16:44 +0200
            Re: trait per decoratore standard fmassei@gmail.com - 2016-04-22 07:58 -0700

Page 3 of 3 — ← Prev page 1 2 [3]


#20770

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-04-30 21:26 +0200
Message-ID<ng30st$eaq$1@gioia.aioe.org>
In reply to#20765
Il 30/04/2016 17:06, fmassei@gmail.com ha scritto:
> On Friday, April 29, 2016 at 11:42:54 AM UTC-4, alex wrote:
>> una curiosità: nella programmazione (non nell'ambito della musica o
>> dell'elettronica) per multiplexer cosa si intende?
>>
>
> Io ho sempre pensato al corrispettivo del circuito multiplexer che si usa in
> elettronica :)

Infatti, vorrei solo sapere cosa fa di preciso il "fantasioso" 
multiplexer di Alessandro.
Ognuno ha le sue stravaganze :)))

[toc] | [prev] | [next] | [standalone]


#20771

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-04-30 19:42 +0000
Message-ID<dokg5hFhv56U2@mid.individual.net>
In reply to#20770
Il Sat, 30 Apr 2016 21:26:23 +0200, alex ha scritto:

> Infatti, vorrei solo sapere cosa fa di preciso il "fantasioso"
> multiplexer di Alessandro.
> Ognuno ha le sue stravaganze :)))

Manda gli stessi log a due destinazioni diverse. :P

Bye.

[toc] | [prev] | [next] | [standalone]


#20772

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-04-30 23:20 +0200
Message-ID<ng37i5$ofe$1@gioia.aioe.org>
In reply to#20771
Il 30/04/2016 21:42, Alessandro Pellizzari ha scritto:
> Il Sat, 30 Apr 2016 21:26:23 +0200, alex ha scritto:
>
>> Infatti, vorrei solo sapere cosa fa di preciso il "fantasioso"
>> multiplexer di Alessandro.
>> Ognuno ha le sue stravaganze :)))
>
> Manda gli stessi log a due destinazioni diverse. :P

Allora è un moltiplicatore, o nello specifico, un multi-logger.
Comunque se fossi in te, valuterei l'utilizzo della funzione array_map().

[toc] | [prev] | [next] | [standalone]


#20775

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-04-30 21:43 +0000
Message-ID<dokn80Fhv56U4@mid.individual.net>
In reply to#20772
Il Sat, 30 Apr 2016 23:20:07 +0200, alex ha scritto:

> Allora è un moltiplicatore, o nello specifico, un multi-logger. Comunque
> se fossi in te, valuterei l'utilizzo della funzione array_map().

In questo caso l'invio sarebbe in "tempo reale" e non in batch, quindi non 
capisco come array_map possa tornare utile.

Bye.

[toc] | [prev] | [next] | [standalone]


#20776

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-05-01 10:34 +0200
Message-ID<ng4f26$6o1$1@gioia.aioe.org>
In reply to#20775
Il 30/04/2016 23:43, Alessandro Pellizzari ha scritto:
> Il Sat, 30 Apr 2016 23:20:07 +0200, alex ha scritto:
>
>> Allora è un moltiplicatore, o nello specifico, un multi-logger. Comunque
>> se fossi in te, valuterei l'utilizzo della funzione array_map().
>
> In questo caso l'invio sarebbe in "tempo reale" e non in batch, quindi non
> capisco come array_map possa tornare utile.
>
> Bye.
>

boh qual'è il problema?
cmq non sapendo come hai ingegnerizzato il codice non mi esprimo più di 
tanto

[toc] | [prev] | [next] | [standalone]


#20773

Fromfmassei@gmail.com
Date2016-04-30 14:38 -0700
Message-ID<1fe307a1-65ff-4bc5-af9a-e8320560e695@googlegroups.com>
In reply to#20771
On Saturday, April 30, 2016 at 3:42:43 PM UTC-4, Alessandro Pellizzari wrote:
> Il Sat, 30 Apr 2016 21:26:23 +0200, alex ha scritto:
> 
> > Infatti, vorrei solo sapere cosa fa di preciso il "fantasioso"
> > multiplexer di Alessandro.
> > Ognuno ha le sue stravaganze :)))
> 
> Manda gli stessi log a due destinazioni diverse. :P
> 

Allora semmai sarebbe un demultiplexer :)

Un N-mux ha N+1 entrate (N segnali e un selettore) e un'uscita, un N-demux ha 2
entrate (un segnale e un selettore) e N uscite.

In una classe di log, nella funzione che prende una stringa e la manda a varie
sottoclassi, il for/switch sarebbe il demux :)

Altrimenti, sempre per la terminologia elettronica, tutta la classe sarebbe
uno.. sdoppiatore! :)

Ciao!

[toc] | [prev] | [next] | [standalone]


#20774

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-04-30 21:41 +0000
Message-ID<dokn4eFhv56U3@mid.individual.net>
In reply to#20773
Il Sat, 30 Apr 2016 14:38:33 -0700, fmassei ha scritto:

> On Saturday, April 30, 2016 at 3:42:43 PM UTC-4, Alessandro Pellizzari
> wrote:

>> Manda gli stessi log a due destinazioni diverse. :P

> Allora semmai sarebbe un demultiplexer :)

Buono a sapersi, grazie. :)

Per fortuna non li ho mai chiamati così nel mio codice. :D

Bye.

[toc] | [prev] | [next] | [standalone]


#20777

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-05-01 10:45 +0200
Message-ID<ng4fmd$7ku$1@gioia.aioe.org>
In reply to#20773
Il 30/04/2016 23:38, fmassei@gmail.com ha scritto:
> On Saturday, April 30, 2016 at 3:42:43 PM UTC-4, Alessandro Pellizzari wrote:
>> Il Sat, 30 Apr 2016 21:26:23 +0200, alex ha scritto:
>>
>>> Infatti, vorrei solo sapere cosa fa di preciso il "fantasioso"
>>> multiplexer di Alessandro.
>>> Ognuno ha le sue stravaganze :)))
>>
>> Manda gli stessi log a due destinazioni diverse. :P
>>
>
> Allora semmai sarebbe un demultiplexer :)
>
> Un N-mux ha N+1 entrate (N segnali e un selettore) e un'uscita, un N-demux ha 2
> entrate (un segnale e un selettore) e N uscite.
>

Però le entrate sono due, non una; un demux convenzionale (se non 
sbaglio) ne ha una.
Poi nell'ambito specifico della programmazione, non saprei; magari hai 
ragione.

> In una classe di log, nella funzione che prende una stringa e la manda a varie
> sottoclassi, il for/switch sarebbe il demux :)
>

Comunque non è di certo un multiplexer ( caro Alessandro :) ),
semmai il contrario.

[toc] | [prev] | [next] | [standalone]


#20778

Fromfmassei@gmail.com
Date2016-05-01 09:02 -0700
Message-ID<677af8e6-4abc-4944-bd59-69e42ff52b8b@googlegroups.com>
In reply to#20777
On Sunday, May 1, 2016 at 4:45:03 AM UTC-4, alex wrote:
> Il 30/04/2016 23:38, fmassei@gmail.com ha scritto:
> > Un N-mux ha N+1 entrate (N segnali e un selettore) e un'uscita, un N-demux
> > ha 2 entrate (un segnale e un selettore) e N uscite.
> >
> 
> Però le entrate sono due, non una; un demux convenzionale (se non 
> sbaglio) ne ha una.
>

Se vogliamo essere precisissimi, a un demux convenzionale con N uscite servono,
per forza di cose, log2(N) selettori: un 1-a-8 demux ha 1 entrata, 3 selettori
(che selezionano l'uscita, in binario, da 0 a 7) e 8 uscite.

Internamente un demux lo costruisci mettendo prima delle uscite un OR che
prende l'entrata e ogni uscita di un decoder che ha i selettori in ingresso,
per cui è molto più semplice del mux, dove servono dei buffer e un po' di
logica all'entrata dei selettori.

> Poi nell'ambito specifico della programmazione, non saprei; magari hai
> ragione.
>

Boh, non mi sembra il nome indichi qualcosa di specifico, ma per chiunque
abbia fatto un elettronica, se un pezzo di codice fa quello che un demux (o
un mux) farebbe in hardware, non è strano che lo chiami così.

Specialmente quando si ha a che fare con colleghi elettronici, non è
infrequente che usino nomi del campo loro quando non sanno cosa dire :) Basta
abituarsi ;)

Ciao!

[toc] | [prev] | [next] | [standalone]


#20780

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-05-02 10:45 +0200
Message-ID<ng7444$kon$1@gioia.aioe.org>
In reply to#20778
Il 01/05/2016 18:02, fmassei@gmail.com ha scritto:
> Boh, non mi sembra il nome indichi qualcosa di specifico, ma per chiunque
> abbia fatto un elettronica, se un pezzo di codice fa quello che un demux (o
> un mux) farebbe in hardware, non è strano che lo chiami così.
>

frase un po' incasinata, ma non importa :-P

> Specialmente quando si ha a che fare con colleghi elettronici, non è
> infrequente che usino nomi del campo loro quando non sanno cosa dire:)  Basta
> abituarsi;)

purtroppo...

[toc] | [prev] | [next] | [standalone]


#20686

Fromfmassei@gmail.com
Date2016-04-22 07:12 -0700
Message-ID<c8224f6b-64ef-4d5a-b85c-f136d9c18825@googlegroups.com>
In reply to#20684
On Friday, April 22, 2016 at 6:08:24 AM UTC-4, alex wrote:
> Il 22/04/2016 11:36, Alessandro Pellizzari ha scritto:
> > On 22/04/2016 10:10, alex wrote:
> >
> >> In pratica *parent* deve essere per forza una classe...
> >> Se è un'interfaccia, il trait non la accetta...
> >> Soluzione?
> >
> > Non cercare di implementare decoratori coi trait.
> >
> > Bye.
> >
> 
> lo si fa per evitare rindondanze e scrivere sempre le stesse istruzioni 
> di base
> 

A me non sembra un decorator nel senso classico... di solito si fa come
sotto:

Come base hai un' interfaccia:
interface Component { public function operation(); };

Senza alcun decorator hai:
class ConcreteComponent implements Component {
    public function operation() { /* ... */ }
}

Se ti serve di usare decorators per quella *interfaccia*:
abstract class ComponentDecorator implements Component {
    public $components; /* array di Components */
}
class ConcreteDecorator1 extends ComponentDecorator {
    public function operation() { /* ... */ }
}
class ConcreteDecorator2 extends ComponentDecorator {
    public function operation() { /* ... */ }
}

In questo modo puoi usare indifferentemente ConcreteComponent,
ConcreteDecorator1 o ConcreteDecorator2 ovunque serva un Component. Quello
che tu chiami "le stesse istruzioni di base" vanno nella classa astratta
ComponentDecorator.

Ciao!

[toc] | [prev] | [next] | [standalone]


#20688

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2016-04-22 16:44 +0200
Message-ID<nfddda$16hl$1@gioia.aioe.org>
In reply to#20686
Il 22/04/2016 16:12, fmassei@gmail.com ha scritto:
> In questo modo puoi usare indifferentemente ConcreteComponent,
> ConcreteDecorator1 o ConcreteDecorator2 ovunque serva un Component. Quello
> che tu chiami "le stesse istruzioni di base" vanno nella classa astratta
> ComponentDecorator.

E se le stesse istruzioni (o solo una parte) vanno bene anche per un 
altro decorator (AppDecorator) perchè non metterle in un trait?

trait MioTrait {// parte di istruzioni comuni}

abstract class ComponentDecorator extends Component {
     use MioTrait;
     // altra roba...
}

abstract class AppDecorator extends App{
     use MioTrait;
     // altra roba...
}

Dov'è il problema?

[toc] | [prev] | [next] | [standalone]


#20689

Fromfmassei@gmail.com
Date2016-04-22 07:58 -0700
Message-ID<b6bd388e-d868-4204-b79c-ecd5f7f93f75@googlegroups.com>
In reply to#20688
On Friday, April 22, 2016 at 10:45:00 AM UTC-4, alex wrote:
> Il 22/04/2016 16:12, fmassei@gmail.com ha scritto:
> > In questo modo puoi usare indifferentemente ConcreteComponent,
> > ConcreteDecorator1 o ConcreteDecorator2 ovunque serva un Component. Quello
> > che tu chiami "le stesse istruzioni di base" vanno nella classa astratta
> > ComponentDecorator.
> 
> E se le stesse istruzioni (o solo una parte) vanno bene anche per un 
> altro decorator (AppDecorator) perchè non metterle in un trait?
> 
> trait MioTrait {// parte di istruzioni comuni}
> 
> abstract class ComponentDecorator extends Component {
>      use MioTrait;
>      // altra roba...
> }
> 
> abstract class AppDecorator extends App{
>      use MioTrait;
>      // altra roba...
> }
> 
> Dov'è il problema?
>

Ah beh, questo però non c'entra nulla con i decorators, è una domanda che vale
per qualsiasi tipo di classe :), o meglio ogni volta che vorresti avere
ereditarietà multipla.

Certamente lo puoi fare, perché no.

Comunque se ti serve per getter/setter ha ragione Alessandro, non lo fare.
Tutta 'sta pantomima serve perché vuoi scrivere funzioni tipo:
function doStuff(Component $c) {
    /*...*/
    $c->operation();
    /*...*/
}
fregandotene di cosa sia effettivamente quella $c.

Se sei in una situazione di dover sapere cosa sia o cosa ci sia dentro stai
sbagliando qualcosa.

Ciao!

[toc] | [prev] | [standalone]


Page 3 of 3 — ← Prev page 1 2 [3]

Back to top | Article view | it.comp.www.php


csiph-web