Esercitazione sui Design Pattern
|
|
|
- Valentino Corso
- 9 anni fa
- Visualizzazioni
Transcript
1 Esercitazione sui Design Pattern
2 Pattern Creazionali
3 Singleton Permette la creazione di una sola istanza della classe all interno dell applicazione Fornisce un metodo con cui ottenere l istanza Il costruttore della classe non deve essere accessibile
4 Singleton public class Logger { private final static Logger logger = new Logger(); private Logger() { public static Logger getinstance() { return logger; public void log(object o){
5 Istanza e Singleton costruttore privati public class Logger { private final static Logger logger = new Logger(); private Logger() { public static Logger getinstance() { return logger; public void log(object o){
6 Istanza e Singleton costruttore privati public class Logger { private final static Logger logger = new Logger(); private Logger() { public static Logger getinstance() { return logger; public void log(object o){ Metodo statico per accedere all istanza
7 Istanza e Singleton costruttore privati public class Logger { private final static Logger logger = new Logger(); private Logger() { public static Logger getinstance() { return logger; public void log(object o){ Metodo statico per accedere all istanza Metodi dell istanza
8 Note Non deve essere usato per avere un riferimento globale a un oggetto. Vanno bene per creare oggetti ma non per accedervi Usatelo solo quando serve davvero! E se in futuro volessimo avere più istanze?
9 Factory Disaccoppia la creazione degli oggetti dall invocazione del costruttore Permette di avere una logica che seleziona il tipo dinamico della nuova istanza Utili quando ci interessa avere una classe che implementi una certa interfaccia ma non ci interessa quale sia nello specifico
10 Esempio Abbiamo diversi tipi di bottoni, ciascuno specifico per un particolare sistema operativo A noi interessa solamente che venga costruito un bottone Vogliamo gestire nel modo più pulito possibile la creazione del bottone
11 Soluzione brutta Creazione della nuova istanza gestita dal chiamante La logica di creazione dell oggetto viene mischiata con quella del suo utilizzo Possibili duplicazioni di codice. Va ripetuto ogni volta che ci serve un bottone
12 Factory La factory si occupa di istanziare il bottone del tipo corretto Possiamo separare il codice di selezione dell istanza e quello che deve usarla
13 Factory public class ButtonFactory { private final SupportedOperatingSystems os; public ButtonFactory(SupportedOperatingSystems os){ this.os = os; public Button createbutton() { switch (os) { case Windows: return new WindowsButton(); case Linux: return new LinuxButton(); return null;
14 Factory Configurazione public class ButtonFactory { private final SupportedOperatingSystems os; public ButtonFactory(SupportedOperatingSystems os){ this.os = os; public Button createbutton() { switch (os) { case Windows: return new WindowsButton(); case Linux: return new LinuxButton(); return null;
15 Factory Configurazione public class ButtonFactory { private final SupportedOperatingSystems os; public ButtonFactory(SupportedOperatingSystems os){ this.os = os; public Button createbutton() { switch (os) { case Windows: return new WindowsButton(); case Linux: return new LinuxButton(); return null; Logica di creazione delle istanze
16 Client public class Client { public void usebutton() { ButtonFactory factory = new ButtonFactory( SupportedOperatingSystems.Windows); Button button = factory.createbutton();
17 Client public class Client { public void usebutton() { ButtonFactory factory = new ButtonFactory( SupportedOperatingSystems.Windows); Button button = factory.createbutton(); L utilizzatore non sa quale oggetto è stato creato
18 Note A volte anziché creare una classe è sufficiente un metodo statico, un factory method
19 Pattern Strutturali
20 Adapter Permette di far lavorare assieme classi che hanno interfacce non compatibili L adapter incapsula la classe e fornisce l interfaccia richiesta
21 Esempio Vogliamo sviluppare una applicazione che permetta l utilizzo di diverse tecnologie di comunicazione, ad esempio Socket e RMI Ovviamente vogliamo evitare il più possibile duplicazioni di codice
22 Soluzione Scrivere la logica applicativa indipendentemente dal protocollo Implementare le classi per permettere la comunicazione Queste classi devono adattare il comportamento della classe a quello richiesto dal protocollo
23 Logica applicativa public class ApplicationLogic { public void dosomething(){ public void dosomethingelse(){ Non implementa nulla relativamente ai protocolli di interazione con l esterno
24 Adapter public class SocketAdapter { private final ApplicationLogic applicationlogic; public SocketAdapter(ApplicationLogic applicationlogic) { this.applicationlogic = applicationlogic; public void messagereceived(string message) { if (message.equals("a")) { applicationlogic.dosomething(); if (message.equals("b")) { applicationlogic.dosomethingelse();
25 Adapter Logica vera e propria public class SocketAdapter { private final ApplicationLogic applicationlogic; public SocketAdapter(ApplicationLogic applicationlogic) { this.applicationlogic = applicationlogic; public void messagereceived(string message) { if (message.equals("a")) { applicationlogic.dosomething(); if (message.equals("b")) { applicationlogic.dosomethingelse();
26 Adapter Logica vera e propria public class SocketAdapter { private final ApplicationLogic applicationlogic; public SocketAdapter(ApplicationLogic applicationlogic) { this.applicationlogic = applicationlogic; public void messagereceived(string message) { if (message.equals("a")) { applicationlogic.dosomething(); if (message.equals("b")) { applicationlogic.dosomethingelse(); Gestione del protocollo
27 Proxy Utile se vogliamo estendere, modificare o personalizzare le operazioni effettuate da una classe In genere permette di risolvere problemi di sicurezza o efficienza
28 Esempio Aggiungere alla logica applicativa una cache per migliorare l efficienza nella risposta alle richieste degli utenti L interfaccia della cache non cambia rispetto a quella della logica vera e propria
29 Logica applicativa public class ApplicationLogic implements public Object performoperation(object parameters) {...
30 Cache public class CachingProxy implements ApplicationInterface { private final ApplicationInterface application; private final Map<Object, Object> cache; public CachingProxy(ApplicationInterface application) { this.application = application; cache = new HashMap<Object, public Object performoperation(object parameter) { if (!cache.containskey(parameter)) { cache.put(parameter,application.performoperation(parameter)); return cache.get(parameter);
31 Cache Stessa interfaccia public class CachingProxy implements ApplicationInterface { private final ApplicationInterface application; private final Map<Object, Object> cache; public CachingProxy(ApplicationInterface application) { this.application = application; cache = new HashMap<Object, public Object performoperation(object parameter) { if (!cache.containskey(parameter)) { cache.put(parameter,application.performoperation(parameter)); return cache.get(parameter);
32 Cache Stessa interfaccia public class CachingProxy implements ApplicationInterface { private final ApplicationInterface application; private final Map<Object, Object> cache; public CachingProxy(ApplicationInterface application) { this.application = application; cache = new HashMap<Object, public Object performoperation(object parameter) { if (!cache.containskey(parameter)) { cache.put(parameter,application.performoperation(parameter)); return cache.get(parameter); Diverso comportamento
33 Note L utilizzo del proxy non richiede nessuna modifica nel client che lo deve utilizzare Altri esempi di proxy sono le versioni unmodifiable delle collections In quel caso i metodi sono re-implementati per inibire le operazioni di modifica
34 Decorator Permette di aggiungere funzionalità ad un oggetto Il nuovo comportamento può essere aggiunto a run time Non richiede la creazione di nuove sottoclassi
35 Esempio Scrivere una applicazione per rappresentare diversi tipi di caffè con diversi ingredienti Potremmo fare diverse sottoclassi, ma ne dovremmo fare troppe La soluzione delle sottoclassi non permetterebbe di aggiungere nuovi ingredienti a run time
36 Struttura base Interfaccia vista dai client public interface Coffee { String getingredients(); float getcost(); public class SimpleCoffee implements public String getingredients() { return public float getcost() { return 5; Classe di base, senza nessuna decorazione
37 Decorazioni public abstract class CoffeeDecorator implements Coffee { private final Coffee decoratedcoffe; public CoffeeDecorator(Coffee decoratedcoffee) { this.decoratedcoffe = public float getcost(){ return decoratedcoffe.getcost(); Contiene un oggetto (anche con altre decorazioni) e permette di public String getingredients() { return decoratedcoffe.getingredients(); decorazioni
38 Una decorazione public class Milk extends CoffeeDecorator { public Milk(Coffee decoratedcoffee) { public float getcost() { return super.getcost() public String getingredients() { return super.getingredients() + " Milk";
39 Un altra decorazione public class Whip extends CoffeeDecorator { public Whip(Coffee decoratedcoffee) { public float getcost() { return super.getcost() + public String getingredients() { return super.getingredients() + " Whip";
40 Come le usa il client public class Client { public static void main(string args[]) { Coffee coffe = new SimpleCoffee(); Coffee decoratedcoffee = new Milk(coffe); decoratedcoffee.getcost(); // 5.5 decoratedcoffee.getingredients();// Coffee Milk decoratedcoffee = new Whip(decoratedCoffee); decoratedcoffee.getcost(); // 6.5 decoratedcoffee.getingredients();// Coffee Milk Whip
41 Note Un approccio simile è usato nelle classi per l input/output di Java: stream, writer, reader Oltre a modificare il comportamento è possibile anche aggiungere nuovi comportamenti Decorator è simile a Proxy, ma permette di comporre diversi comportamenti
42 Pattern Comportamentali
43 Strategy Permette di variare gli algoritmi utilizzati nell implementazione della classe La classe base richiede una strategia esterna per portare a termine correttamente il suo compito L abbiamo visto con l ordinamento che richiede la sua strategia di comparazione tra una coppia di elementi
44 Esempio Vogliamo scrivere il codice per rappresentare un robot che può avere diverse strategie per gestire il suo comportamento Vogliamo fare sì che i comportamenti possano cambiare mentre la nostra applicazione è in esecuzione
45 Robot public class Robot { private Behavior behavior; public Robot(Behavior behavior) { this.behavior = behavior; public void changebehavior(behavior behavior) { this.behavior = behavior; public void move() { behavior.move();
46 Comportamenti public interface Behavior { void move(); public class DefensiveBehavior implements Behavior public void move() { System.out.println("Defensive behavior"); public class AggressiveBehavior implements Behavior public void move() { System.out.println("Aggressive behavior");
47 Note La strategia può definire anche solo una parte del comportamento della classe (Come nel caso dell ordinamento)
48 Observer Utile per gestire il paradigma ad eventi Permette di gestire dinamicamente l accoppiamento tra sorgenti di eventi e classi che devono reagire quando questi si verificano
49 Come funziona Si ha una classe Osservabile (in Java si può implementare l interfaccia Observable) Si hanno degli oggetti Osservatori (in Java si può implementare l interfaccia Observer)
50 Observable (Java) Si trova nel package java.util È l interfaccia implementata dal Subject Fornisce metodi per registrare gli Observer: addobserver(observer o) removeobserver(observer o) Fornisce metodi per notificare eventi agli Observer quando qualcosa nell oggetto Observable cambia: notifyobserver(object arg)
51 Observer (Java) È un interfaccia implementata dalle classi che possono ricevere notifiche di eventi da parte di classi Observable. Ha un solo metodo: update(observable o, Object arg) Il metodo è invocato quando si verifica un cambiamento nell oggetto osservato.
52 Esempio: conto corrente public class ObserverExample { public static void main(string args[]) { Conto conto = new Conto(); SaldoObserver saldoobserver = new SaldoObserver(); conto.addobserver(saldoobserver); conto.aggiornasaldo(30); public lass SaldoObserver implements Observer { public void update(observable conto, Object saldo) { System.out.println("ricevuto aggiornamento saldo: " + saldo); public class Conto extends Observable { private Integer saldo = 0; public void aggiornasaldo(integer saldo) { this.saldo = saldo; setchanged(); notifyobservers(this.saldo);
53 Note Il pattern observer è utilizzato nel pattern Model View Controller per notificare alla View eventi generati nel Model e nel Controller.
54 Model-view-controller
55 Separation of concerns Controller View Model
56 Model Incapsula lo stato dell applicazione Deve permettere di accedere ai dati Deve notificare i cambiamenti dello stato
57 View Deve mostrare il modello Gestisce l interazione con l utente
58 Controller Rappresenta la logica applicativa Collega le azioni dell utente con modifiche allo stato Sceglie cosa deve essere mostrato
59 Come interagiscono? Controller Azioni dell utente Seleziona una vista Modifica lo stato View Richiede informazioni Notifica cambiamenti Model
60 MVC: un possibile class diagram
61 Come si realizza? Programmazione ad eventi per gestire la comunicazione tra i componenti
62 Eventi Azioni dell utente Notifiche da model e controller Sono delle classi e contengono delle informazioni dettagliate sull evento
63 Esempio MouseEvent Evento già definito nelle librerie grafiche di Java Contiene informazioni sull evento: tipo (Click, movimento,...) quale bottone è stato cliccato posizione del puntatore
64 Ascoltatori Si mettono in ascolto di un evento Devono avere dei metodi per poter reagire agli eventi Possono esserci più ascoltatori per un evento
65 Esempio public interface MouseListener{ public void mouseclicked(mouseevent e); public void mouseentered(mouseevent e); public void mouseexited(mouseevent e); public void mousepressed(mouseevent e); public void mousereleased(mouseevent e); Un listener deve implementare questa interfaccia e reagire nel modo opportuno agli eventi ricevuti come parametri
66 Sorgenti di eventi Notificano gli eventi agli interessati La notifica avviene invocando i metodi sugli ascoltatori Devono avete un metodo per permettere la registrazione degli ascoltatori
67 Esempio public class EventSource{ private List<EventListener> listeners; public void registerlistener(eventlistener listener){ listeners.add(listener); private void notifylisteners(event e){ for(eventlistener listener : listeners){ listener.eventhappened(e); public void foo(){ /* Viene generato un evento e inviata la notifica*/ notifylisteners(new Event(...));
68 Logica ed interfaccia Logica ed interfaccia utente devono essere separate Servono due interfacce: Controller-Model/View aggiornare la visualizzazione View/Controller-Model inviare i comandi e le richieste
69 Cosa passare SEMPRE oggetti che rappresentano eventi o creati appositamente Oggetti modificabili del modello NON devono arrivare all interfaccia
70 Soluzioni Interfacce limitate (Solo metodi di visualizzazione) Oggetti immutabili Oggetti creati appositamente per la visualizzazione
71 Applicazioni distribuite Esempio di uso di MVC in una applicazione client/server in cui: la logica e i dati sono gestiti dal server l interazione è gestita dal client Nota: il modo presentato non è l unico!
72 Applicazioni distribuite Server Client Server Controller Client Controller Network Abstraction Interfaces Model View
73 Possibile soluzione Il Model viene implementato interamente nel server. La View viene implementata interamente nel client. Il Controller viene implementato con un componente nel server e uno nel client. L astrazione di rete mette a disposizione delle interfacce per permettere ai componenti del client di comunicare con i componenti del server.
74 Riconoscere un buon design Deve essere possibile modificare il tipo di rete (Socket o RMI) senza modificare Model e View. Deve essere possibile modificare il tipo di view (grafica o testuale) senza modificare Model, Server Controller, e le astrazioni di rete. Suggerimento: disaccoppiare la parti di Model/ View/Controller (e le astrazioni di rete) utilizzando opportune interfacce e/o design pattern!
L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo
Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012
Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici
Design Pattern in Java
Design Pattern in Java Claudio Di Ciccio, Massimiliano de Leoni (con la supervisione del docente Massimo Mecella) Università di Roma La Sapienza - Sede di Latina Corso di Progettazione del Software A.A.
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server
Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette
Programmazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
appunti delle lezioni Architetture client/server: applicazioni server
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante
Gestione degli eventi in Java
Gestione degli eventi in Java package java.awt.event.* Il modello degli eventi I componenti dell awt generano eventi in seguito alle azioni dell utente movimento del mouse click pressione di un tasto etc.
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
Alcuni Design Pattern in Java
Marco Faella Alcuni Design Pattern in Java basato su Progettazione del Software e Design Pattern in Java, di Cay Horstmann Pattern ITERATOR Contesto: 1) Un oggetto (aggregato) contiene altri oggetti (elementi)
Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144
Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe
Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected] Reflection in Java 1 Reflection Riflessione
DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali
DESIGN PATTERN CREAZIONALI DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 [email protected]
Ottava Esercitazione. introduzione ai thread java mutua esclusione
Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione
SWIM v2 Design Document
PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback
Modulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE
INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE La Gestione degli Eventi Ogni oggetto grafico è predisposto ad essere sollecitato in qualche modo dall utente (per esempio un pulsante può essere premuto).
Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
appunti delle lezioni Architetture client/server: applicazioni client
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente
Socket & RMI Ingegneria del Software - San Pietro
Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client
Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un
File Server Resource Manager (FSRM)
File Server Resource Manager (FSRM) di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione FSRM, File Server Resource Manager, è un ruolo opzionale che può essere installato in Windows Server 2008 nel
Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE INTRODUZIONE ADAPTER. Scopo Convertire l interfaccia di una classe in un altra.
DESIGN PATTERN STRUTTURALI DESIGN PATTERN STRUTTURALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 [email protected]
Vlan Relazione di Sistemi e Reti Cenni teorici
Cosa sono le Vlan? Vlan Relazione di Sistemi e Reti Cenni teorici Le Vlan sono un tipo di rete particolare che permettono di creare tante reti logiche a partire da una singola rete fisica. Questo significa
Tale attività non è descritta in questa dispensa
Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E08 Soluzione Esercizi F. Gasparetti, C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Soluzione Esercizi
Design patterns in Java
tesi di laurea Anno Accademico 2012/13 relatore Ch.mo prof. Porfirio Tramontana candidato Luciano Amitrano Matr. 534/2042 Progettare SW a oggetti è difficoltoso I progettisti devono cercare di far coesistere
La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete
La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication
UML Diagrammi delle classi. UML Diagramma classi 1
UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio
Programmazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
Ingegneria del Software. Introduzione ai pattern
Ingegneria del Software Introduzione ai pattern 1 Definizione di pattern [dal [dal vocabolario vocabolario Garzanti] Garzanti] Alcuni esempi: Pattern architetturale Pattern di circuito stampato Pattern
Object Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
Esercizi della lezione 5 di Java
Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)
PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo
13. Chain of Responsibility
Chain of Responsibility 92 13. Chain of Responsibility (GoF pag. 223) 13.1. Descrizione Consente di separare il mittente di una richiesta dal destinario, in modo di consentire a più di un oggetto di gestire
Realizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:
7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)
Corso Eclipse. Prerequisiti. 1 Introduzione
Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated
Registratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
Lezione n.10 LPR- Informatica Applicata RMI CallBacks
Università degli Studi di Pisa Lezione n.10 LPR- Informatica Applicata RMI CallBacks 15/5/2006 Laura Ricci RMI: IL MECCANISMO DELLE CALLBACK Meccanismo RMI comunicazione unidirezionale (dal client al server)
Oggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
Java Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008
UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI ELETTRONICA PER L'AUTOMAZIONE Il Pattern PROXY Ex presentazione realizzata
Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()
Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno
Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A. 2005-06
Raffaella Brighi, a.a. 2005/06 Eventi e listener Corso di Laboratorio II. A.A. 2005-06 Eventi e listener Un evento è un oggetto che rappresenta il verificarsi di un azione dell utente o del sistema(es
Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD
Introduzione alla programmazione Java Dott. Ing. M. Banci, PhD Obiettivi del corso Creare, compilare, e eseguire programmi Java Tipi di dato primitivi Flusso di controllo Java Metodi Arrays Introduzione
Test di unità con JUnit4
Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso
Java: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724)
Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Procedo con un esempio: voglio proteggere una applicazione (nell esempio Blocco Note di Windows: notepad.exe) per distribuirla con
MANUALE PARCELLA FACILE PLUS INDICE
MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella
Versione 7.0 Taglie e Colori. Negozio Facile
Versione 7.0 Taglie e Colori Negozio Facile Negozio Facile: Gestione taglie e colori Il concetto di base dal quale siamo partiti è che ogni variante taglia/colore sia un articolo a se stante. Partendo
Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015
Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla
Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti
20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1
Capitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
La struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
Basi di dati I. Esercitazione proposta
Basi di dati I Esercitazione proposta Premessa Viene richiesta la realizzazione di una piccola base di dati, attraverso un processo di progettazione concettuale e logica e con la realizzazione di alcune
L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1
I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1 3.13 (Caso di studio facoltativo) Pensare a oggetti: Modello-Vista-Controllore I design pattern descrivono strategie efficaci per costruire sistemi
RMI. Java RMI RMI. G. Prencipe [email protected]
Java Remote Method Invocation -- RMI G. Prencipe [email protected] RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti
Database e reti. Piero Gallo Pasquale Sirsi
Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente
Main System Monitor Keyboard
Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti
SERVIZIO DI MESSAGGISTICA ALL UTENTE. Manuale per l operatore
SERVIZIO DI MESSAGGISTICA ALL UTENTE Manuale per l operatore rev. 02 giugno 2010 SOMMARIO COME USARE IL PROGRAMMA PER LA MESSAGGISTICA...3 COSA BISOGNA FARE PRIMA DI INIZIARE A UTILIZZARE IL PROGRAMMA...3
dall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)
Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni
Soluzione dell esercizio del 12 Febbraio 2004
Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale
I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale
La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del
WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15
WG TRANSLATE Pagina 1 di 15 Sommario WG TRANSLATE... 1 1.1 INTRODUZIONE... 3 1 TRADUZIONE DISPLAY FILE... 3 1.1 Traduzione singolo display file... 4 1.2 Traduzione stringhe da display file... 5 1.3 Traduzione
Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe [email protected]. È qualcosa che abbiamo già visto varie volte
Java riutilizzo delle classi G. Prencipe [email protected] Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi
InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: [email protected]
izticket Il programma izticket permette la gestione delle chiamate di intervento tecnico. E un applicazione web, basata su un potente application server java, testata con i più diffusi browser (quali Firefox,
Programmi e Oggetti Software
Corso di Laurea Ingegneria Civile Elementi di Informatica Programmi e Oggetti Software Settembre 2006 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il punto di
3. Introduzione all'internetworking
3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia
Ingegneria del Software. Presentazione del pattern Proxy
Ingegneria del Software Presentazione del pattern Proxy 1 Il pattern Proxy (1/6) Nome Proxy Synopsis Pattern molto generale che occorre in molti altri pattern, ma raramente nella sua forma pura. Il pattern
Progettare un Firewall
Progettare un Firewall Danilo Demarchi [email protected] GLUG Cuneo Corso Sicurezza 2006 Concetti introduttivi Come pensare un Firewall Argomenti trattati I Gli strumenti del Firewall Gli strumenti
Guida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create
Gestione dell interattività: gli eventi
Gestione dell interattività: gli eventi Gli eventi sono una modalità di comunicazione tra l utente (sistema) e il programma in esecuzione. Tipi di eventi: Input da parte dell utente: pressione del(i) bottone(i)
Approccio stratificato
Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
MECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
Office 2007 Lezione 08
Word: gli stili veloci e i temi Da questa lezione, iniziamo ad occuparci delle innovazioni che riguardano specificamente Word. Cominceremo parlando di stili e temi. Nella filosofia di questo nuovo Word,
Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:
Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente
Inizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
CROSSROAD. Gestione TENTATA VENDITA. Introduzione. Caratteristiche generali. Principali funzionalità modulo supervisore
CROSSROAD Gestione TENTATA VENDITA Introduzione CrossRoad è la soluzione software di Italdata per la gestione della tentata vendita. Nella tentata vendita agenti, dotati di automezzi gestiti come veri
NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0
Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2
