Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #20682 > unrolled thread
| Started by | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| First post | 2016-04-22 11:10 +0200 |
| Last post | 2016-04-22 07:58 -0700 |
| Articles | 13 on this page of 53 — 3 participants |
Back to article view | Back to it.comp.www.php
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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2016-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]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-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