CodeGym/Java Course/Modulo 3/Modelli comportamentali

Modelli comportamentali

Disponibile

Iteratore

Iterator è un modello di progettazione comportamentale. Rappresenta un oggetto che consente l'accesso sequenziale agli elementi di un oggetto aggregato senza utilizzare le descrizioni di ciascuno degli oggetti aggregati.

Iteratore

Ad esempio, elementi come un albero, un elenco collegato, una tabella hash e un array possono essere attraversati (e modificati) utilizzando un oggetto Iterator.

L'iterazione degli elementi viene eseguita dall'oggetto iteratore, non dalla raccolta stessa. Ciò semplifica l'interfaccia e l'implementazione della raccolta e promuove una separazione più logica delle preoccupazioni.

Una caratteristica di un iteratore completamente implementato è che il codice che utilizza l'iteratore potrebbe non sapere nulla sul tipo dell'aggregato iterato.

Questo approccio è usato molto spesso. Ad esempio, invii una query SQL al database e in risposta ti restituisce un iteratore (in termini SQL, di solito è chiamato cursore). E con l'aiuto dell'iteratore risultante, puoi prendere le righe dalla risposta SQL una per una.

comando

Un comando è un modello di progettazione comportamentale utilizzato nella programmazione orientata agli oggetti che rappresenta un'azione. L'oggetto comando contiene l'azione stessa ei suoi parametri.

Comando

Per chiamare un metodo, di solito è necessario:

  • riferimento all'oggetto
  • nome metodo (riferimento metodo)
  • valori dei parametri del metodo
  • riferimento al contesto che contiene gli oggetti utilizzati

Tutti questi dati devono essere racchiusi in un oggetto: Comando ( comando ).

Ma non è tutto: dopotutto, qualcuno deve eseguire il comando. Quindi questo modello include altre quattro entità: comandi ( command ), un ricevitore di comandi ( receiver ), un chiamante di comandi ( invoker ) e un client ( client ).

Un oggettocomandoconosce il ricevitore e chiama il metodo del ricevitore. I valori dei parametri del ricevitore sono memorizzati nel comando. Il chiamante (invoker) sa come eseguire il comando ed eventualmente tiene traccia dei comandi eseguiti. Il chiamante (invoker) non sa nulla di un particolare comando, conosce solo l'interfaccia.

Entrambi gli oggetti (l'oggetto chiamante e diversi oggetti comando) appartengono all'oggetto client. Il client decide quali comandi eseguire e quando. Per eseguire un comando, passa l'oggetto comando al chiamante (invoker).

L'utilizzo di oggetti comando semplifica la creazione di componenti condivisi che è necessario delegare o effettuare chiamate di metodo in qualsiasi momento senza dover conoscere i metodi della classe oi parametri del metodo.

L'utilizzo dell'oggetto chiamante (invoker) consente di tenere un registro dei comandi eseguiti senza che il client debba conoscere questo modello di account (tale account può essere utile, ad esempio, per implementare i comandi annulla e ripeti).

Ad esempio, stai scrivendo un programma che ti consente di eseguire varie attività in base a una pianificazione. Da un lato, il tuo programma tiene traccia delle attività e ne gestisce l'avvio, dall'altro può avere diversi esecutori, ognuno dei quali può eseguire comandi del proprio tipo. Ad esempio, invio di SMS, invio di lettere, invio di messaggi a Telegram, ecc.

Osservatore

Observer è un modello di progettazione comportamentale. Implementa un meccanismo di classe che consente a un oggetto di questa classe di ricevere notifiche sui cambiamenti nello stato di altri oggetti e quindi osservarli.

Osservatore

Le classi a cui si iscrivono altre classi sono chiamate Soggetti e le classi che si iscrivono sono chiamate Osservatori .

Quando si implementa il modello Observer, vengono comunemente utilizzate le seguenti classi:

  • Osservabile : un'interfaccia che definisce i metodi per aggiungere, rimuovere e notificare gli osservatori;
  • Observer - l'interfaccia attraverso la quale l'osservatore riceve la notifica;
  • ConcreteObservable è una classe concreta che implementa l' interfaccia Observable ;
  • ConcreteObserver è una classe concreta che implementa l' interfaccia Observer .

Il modello Observer viene utilizzato quando il sistema:

  • c'è almeno un oggetto che invia messaggi;
  • vi è almeno un destinatario dei messaggi e il loro numero e la loro composizione possono cambiare durante l'esecuzione dell'applicazione;
  • evita un forte accoppiamento di classi interagenti.

Questo modello viene spesso utilizzato in situazioni in cui il mittente dei messaggi non è interessato a ciò che i destinatari fanno con le informazioni fornite loro.

Visitatore

Il visitatore è un modello di progettazione comportamentale che descrive un'operazione eseguita su oggetti di altre classi. Quando visiti o cambi, non è necessario cambiare le classi servite.

Il modello dimostra la tecnica classica per recuperare le informazioni sui tipi perdute senza ricorrere al downcast del doppio invio.

Visitatore

Devi eseguire alcune operazioni disconnesse su un numero di oggetti, ma devi evitare di inquinare il loro codice. E non c'è modo o desiderio di interrogare il tipo di ciascun nodo e lanciare il puntatore al tipo corretto prima di eseguire l'operazione desiderata.

Il modello deve essere utilizzato se:

  • ci sono vari oggetti di classi diverse con interfacce diverse, ma su di essi devono essere eseguite operazioni che dipendono da classi specifiche;
  • sulla struttura è necessario eseguire varie operazioni che complicano la struttura;
  • spesso vengono aggiunte nuove operazioni sulla struttura.

mediatore

Il mediatore è un modello di progettazione comportamentale che consente a più oggetti di interagire mantenendo un accoppiamento libero ed evitando la necessità per gli oggetti di fare riferimento esplicito l'uno all'altro.

Mediatore

Il modello Mediator consente di garantire l'interazione di molti oggetti, formando un accoppiamento libero ed eliminando la necessità che gli oggetti facciano riferimento esplicito l'uno all'altro.

Il mediatore definisce un'interfaccia per lo scambio di informazioni con gli oggettiColleghi, Un particolare mediatore coordina le azioni degli oggettiColleghi.

Ogni classe Collega conosce il suo oggettoMediatore, tutti i Colleghi scambiano informazioni solo con un intermediario, in sua assenza dovrebbero scambiarsi informazioni direttamente.

Colleghiinviare richieste al Rivenditore/span> e ricevere richieste da esso. Il mediatore attua un comportamento cooperativo inoltrando ogni richiesta a uno o piùColleghi.

1
Compito
Modulo 3,  livello 17lezione 0
Bloccato
Total Iteration
task4113
1
Compito
Modulo 3,  livello 17lezione 0
Bloccato
Easy-calculator
task4114
1
Compito
Modulo 3,  livello 17lezione 0
Bloccato
You've Got a Discount!
task4115
1
Compito
Modulo 3,  livello 17lezione 0
Bloccato
Wool and Stars
task4116
1
Compito
Modulo 3,  livello 17lezione 0
Bloccato
Greetings in this Chat
task4117
Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti