La programmazione basata sugli oggetti ha come obiettivo principale la creazione di nuovi tipi di dato. Un oggetto è un contenitore di valori eterogenei, messi insieme a formare una struttura dati unica e tale da avere generalmente una particolare identità. Normalmente, infatti, un oggetto è utilizzato per rappresentare un’entità specifica come ad esempio una persona, una moto, un pc, etc. tramite un’aggregazione di dati e di funzionalità.
Nello studio degli algoritmi LS e DV abbiamo visto la rete semplicemente come una collezione di router interconnessi. Ciascun router era indistinguibile dagli altri nel senso che tutti eseguivano lo stesso algoritmo per calcolare l'instradamento attraverso la rete.
Al crescere del numero di router, il tempo richiesto per calcolare, memorizzare comunicare le informazioni di instradamento diventa proibitivo. Attualmente, Internet è costituita da centinaia di milioni di host. Archiviare le informazioni di instradamento su ciascuno di essi richiederebbe chiaramente un'enorme quantità di memoria. In questo scenario i protocolli visti precedentemente causano dei problemi:
Si possono distinguere due classi principali di algoritmi di routing:
Algoritmi non adattivi (statici): non basano la loro decisione di routing su misurazioni o stime relative al traffico di rete e topologie, la scelta del percorso è definita in anticipo off-line. Negli algoritmi statici le tabelle di routing che sono memorizzate vengono compilate da una persona (Network Administrator) e i valori di tali tabelle non cambiano per nessun motivo fin quando il Network Administrator non li cambia;
Algoritmi adattivi (dinamici): modificano le decisioni di routing in base al percorso e al traffico in rete, comunicato ad esempio dai router adiacenti. Altri parametri usati riguardano le distanze tra nodi, il numero di salti tra nodi (hop), il tempo di attesa nei nodi.
Le espressioni lambda sono una nuova e importante funzionalità inclusa in Java SE 8 che sarà ufficialmente fuori a marzo – Se avete programmato in maniera funzionale o se si ha familiarità con l’idea di chiusure (clousures), le espressioni lambda non vi appariranno come niente di nuovo.
In matematica e informatica in generale, un’espressione lambda è una funzione. In Java, un’espressione lambda fornisce un modo per creare una funzione anonima, introducendo di fatto un nuovo tipo Java: il tipo funzione anonima che può quindi essere passato come argomento o restituito in uscita nei metodi, un pò come si fa con gli oggetti – In poche parole, si tratta di un metodo senza una dichiarazione, una sorta di scorciatoia che consente di scrivere un metodo nello stesso posto dove ti serve.
Commenti recenti