SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Your new superhero:
AS3 design pattern
Your new superhero:
AS3 design pattern
Wednesday, November 10, 2010
Multiscreen development
with Flash Platform
Wednesday, November 10, 2010
Design Pattern?
In software engineering, a design pattern is a
general reusable solution to a commonly occurring
problem in software design. [...]
It is a description or template for how to solve a
problem that can be used in many different
situations.
Wednesday, November 10, 2010
Design Pattern?
• Development speed up
• Utilizzati nelle micro architetture
• Coprono molte casistiche comuni nei progetti
• Aiutano nellla realizzazione dell’architettura
• Rendono il progetto mantenibile e documentato
• Spesso li usiamo ma non ce ne rendiamo conto
Wednesday, November 10, 2010
Concetti base OOP
Object-oriented programming (OOP) is a
programming paradigm that uses "objects" to
design applications and computer programs
OOP basic concepts:
. Abstraction (model)
. Encapsulation (black box)
. Inheritance (extends)
. Polymorphism (change in the same field)
Wednesday, November 10, 2010
Design Pattern?
• Creational patterns
• Structural patterns
• Behavioral patterns
• Concurrency patterns
• Multiple patterns
Wednesday, November 10, 2010
Creational pattern
• permettono di creare oggetti adatti alla
situazione in cui verranno inseriti
• Alcuni pattern:
• Factory
• Singleton
• Object pool
Wednesday, November 10, 2010
Structural pattern
• Semplificano il modo in cui mettono in relazione
gli oggetti
• Alcuni pattern:
• Façade
• Proxy
• Decorator
Wednesday, November 10, 2010
Behavioral pattern
• Identificano un metodo comune per comunicare
tra oggetti
• Alcuni pattern:
• Command
• Memento
• Observer
Wednesday, November 10, 2010
I nostri nuovi eroi
• Singleton (creational pattern)
• Façade (structural pattern)
• Proxy (structural pattern)
• Command (behavioral pattern)
• Observer (behavioral pattern)
• Mediator (behavioral pattern)
• MVC (multiple pattern)
Wednesday, November 10, 2010
Singleton
• rappresentazione della Singleton matematica in
programmazione
• Un gruppo con un solo oggetto (es: {0})
Quando utilizzarla?
Quando vogliamo creare oggetti univoci all’interno del
nostro progetto (es.: Manager, Alert, Façade, ...)
Wednesday, November 10, 2010
Singleton
Wednesday, November 10, 2010
Singleton vs Static class
• Singleton può estendere classi e implementare
interfaccie
• Le Static class hanno solo metodi statici (ricordano
molto il procedurale), in più non viene istanziata
• Con la Singleton posso istanziare anche classi
derivate
Wednesday, November 10, 2010
Façade
• l’accesso semplificato ad un insieme di oggetti
strutturati o ad un oggetto complesso
• riduce le dipendenze tra la libreria di oggetti e
quelli che li utilizzano
Quando utilizzarla?
Quando vogliamo semplificare l’accesso ad una parte
del codice
Wednesday, November 10, 2010
Façade
Wednesday, November 10, 2010
Façade
Wednesday, November 10, 2010
Proxy
• placeholder di un oggetto come un file del sistema,
una connessione remota a dati...
• Il virtual proxy in particolare è molto adatto per il
caricamento di file grafici esterni
Quando utilizzarla?
Ogni volta che utilizzo la classe Loader di Actionscript
Wednesday, November 10, 2010
Proxy
Wednesday, November 10, 2010
Command
• Un oggetto che contiene le informazioni (nome del
metodo, l’oggetto che lo contiene e i parametri da
passare) utili per richiamare un metodo
• Possiamo creare i Macro Commands e i Simple
Commands
Quando utilizzarla?
Ogni volta che l’utente interagisce con la GUI della
nostra applicazione
Wednesday, November 10, 2010
Command
Wednesday, November 10, 2010
Observer
• Un oggetto principale (Subject) tiene una lista di
oggetti osserverti (Observer) e notifica ogni cambio
di stato ad ogni oggetto osservato.
Quando utilizzarla?
Al posto degli eventi possiamo usare le notifiche che
rendono il nostro sistema più leggero e performante
Wednesday, November 10, 2010
Observer
• Subject Interface
• Observer Interface
Wednesday, November 10, 2010
Mediator
• metodo per far comunicare 2 oggetti rendendoli
totalmente indipendenti tra loro
Quando utilizzarla?
Quando vogliamo far comunicare le view con il resto
dell’applicazione
Wednesday, November 10, 2010
MVC
• Model View Control divide la parte di visualizzazione
dell’interfaccia dalla parte logica dell’applicazione
• Il Model è dove vado a gestire i dati
dell’applicazione (NO DATABASE!)
• La View è la parte di interfaccia vista dagli utenti
• Il Controller riceve gli input dell’utente e dialoga
con il Model per recuperare i dati che saranno poi
visualizzati dalla View
Wednesday, November 10, 2010
Wednesday, November 10, 2010
Dependency Injection
• Viene utilizzata per far collaborare due o più oggetti
mantenendo però un accoppiamento debole tra essi
• Aiuta nella mantenibilità dei progetti e nel unit
testing del progetto stesso
• Molte micro-architettura utilizzano questa tecnica
(Parsley, SWIZ, Spring AS, Mate, RobotLegs, ...)
Wednesday, November 10, 2010
Dependency Injection
Wednesday, November 10, 2010
Useremo i Design Pattern?!
Partendo dal presupposto che ci vorrà tempo per
impararli e riconoscere quando usarli, ma...
Wednesday, November 10, 2010
Libri da non perdere!
http://www.as3dp.com/
Wednesday, November 10, 2010
Domande e risposte
blog: http://lucamezzalira.com
twitter: lucamezzalira
email: luca@mart3.org
Wednesday, November 10, 2010

Contenu connexe

En vedette

En vedette (18)

TSB2 UIN
TSB2 UINTSB2 UIN
TSB2 UIN
 
Bolsa de Valores
Bolsa de ValoresBolsa de Valores
Bolsa de Valores
 
Nebula
NebulaNebula
Nebula
 
HOSHVA PR Obolon Case (eng)
HOSHVA PR Obolon Case (eng)HOSHVA PR Obolon Case (eng)
HOSHVA PR Obolon Case (eng)
 
Influencia de la tecnología en la educación
Influencia de la tecnología en la educaciónInfluencia de la tecnología en la educación
Influencia de la tecnología en la educación
 
Ventajas y desventajas del Internet
Ventajas y desventajas del InternetVentajas y desventajas del Internet
Ventajas y desventajas del Internet
 
El Rosedal de Buenos Aires
El Rosedal de Buenos AiresEl Rosedal de Buenos Aires
El Rosedal de Buenos Aires
 
5 el esfuerzo cognitivo en la toma de decisiones (2)
5 el esfuerzo cognitivo en la toma de decisiones (2)5 el esfuerzo cognitivo en la toma de decisiones (2)
5 el esfuerzo cognitivo en la toma de decisiones (2)
 
Email Marketing
Email MarketingEmail Marketing
Email Marketing
 
Autodeterminacion
AutodeterminacionAutodeterminacion
Autodeterminacion
 
Leccion1aries
Leccion1ariesLeccion1aries
Leccion1aries
 
TIC - Tecnologias da Comunicacao e da Informacao no Contexto Escolar
TIC - Tecnologias da Comunicacao e da Informacao no Contexto EscolarTIC - Tecnologias da Comunicacao e da Informacao no Contexto Escolar
TIC - Tecnologias da Comunicacao e da Informacao no Contexto Escolar
 
Analisis Urbano
Analisis UrbanoAnalisis Urbano
Analisis Urbano
 
Teori piag
Teori piagTeori piag
Teori piag
 
Especialidade de inclusão item 7
Especialidade de inclusão item 7Especialidade de inclusão item 7
Especialidade de inclusão item 7
 
Poster Presentations
Poster PresentationsPoster Presentations
Poster Presentations
 
Reciclaje en los hospitales. pp 17-18
Reciclaje en los hospitales. pp 17-18Reciclaje en los hospitales. pp 17-18
Reciclaje en los hospitales. pp 17-18
 
PROJETO DO TRABALHO - APOSTILA - PARTE III
PROJETO DO TRABALHO - APOSTILA - PARTE IIIPROJETO DO TRABALHO - APOSTILA - PARTE III
PROJETO DO TRABALHO - APOSTILA - PARTE III
 

Similaire à Actionscript 3 Design Pattern

Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaDario Rusignuolo
 
Repository pattern slides v1.1
Repository pattern slides v1.1Repository pattern slides v1.1
Repository pattern slides v1.1Christian Nastasi
 
Programmazione web libera dai framework
Programmazione web libera dai frameworkProgrammazione web libera dai framework
Programmazione web libera dai frameworkFrancesca1980
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereMatteo Valoriani
 
Corso sharepoint D1
Corso sharepoint D1Corso sharepoint D1
Corso sharepoint D1Decatec
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven DesignAndrea Saltarello
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8DotNetCampus
 
Tecnologie semantiche per il knowledge Management
Tecnologie semantiche per il knowledge Management Tecnologie semantiche per il knowledge Management
Tecnologie semantiche per il knowledge Management Nicola Cerami
 
SQLite in Xamarin.Forms
SQLite in Xamarin.FormsSQLite in Xamarin.Forms
SQLite in Xamarin.FormsGuido Magrin
 
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
"Don't call us, we'll call you" - AngularJS meets Event-Driven ArchitectureLuca Milan
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSGiovanni Buffa
 

Similaire à Actionscript 3 Design Pattern (20)

Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - ita
 
Repository pattern slides v1.1
Repository pattern slides v1.1Repository pattern slides v1.1
Repository pattern slides v1.1
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
Microservizi & DevOps
Microservizi & DevOpsMicroservizi & DevOps
Microservizi & DevOps
 
ORM - Introduzione
ORM - IntroduzioneORM - Introduzione
ORM - Introduzione
 
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
 
Programmazione web libera dai framework
Programmazione web libera dai frameworkProgrammazione web libera dai framework
Programmazione web libera dai framework
 
Repository pattern
Repository patternRepository pattern
Repository pattern
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivere
 
Corso sharepoint D1
Corso sharepoint D1Corso sharepoint D1
Corso sharepoint D1
 
iOS_Course_8
iOS_Course_8iOS_Course_8
iOS_Course_8
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven Design
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
 
Tecnologie semantiche per il knowledge Management
Tecnologie semantiche per il knowledge Management Tecnologie semantiche per il knowledge Management
Tecnologie semantiche per il knowledge Management
 
Wcf data services
Wcf data servicesWcf data services
Wcf data services
 
SQLite in Xamarin.Forms
SQLite in Xamarin.FormsSQLite in Xamarin.Forms
SQLite in Xamarin.Forms
 
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
 
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJSWorkshop Ideare e creare Web Applications, Introduzione ad AngularJS
Workshop Ideare e creare Web Applications, Introduzione ad AngularJS
 
TESIPOLI
TESIPOLITESIPOLI
TESIPOLI
 

Plus de luca mezzalira

Mvi an architecture for reactive programming
Mvi an architecture for reactive programmingMvi an architecture for reactive programming
Mvi an architecture for reactive programmingluca mezzalira
 
Cycle.js a reactive framework
Cycle.js  a reactive frameworkCycle.js  a reactive framework
Cycle.js a reactive frameworkluca mezzalira
 
Reactive programming with cycle.js
Reactive programming with cycle.jsReactive programming with cycle.js
Reactive programming with cycle.jsluca mezzalira
 
Next generation of frontend architectures
Next generation of frontend architecturesNext generation of frontend architectures
Next generation of frontend architecturesluca mezzalira
 
Evolution of front end architectures
Evolution of front end architecturesEvolution of front end architectures
Evolution of front end architecturesluca mezzalira
 
Kaizen - the key of continuos improvement
Kaizen - the key of continuos improvementKaizen - the key of continuos improvement
Kaizen - the key of continuos improvementluca mezzalira
 
Having fun with Adobe AIR 2013
Having fun with Adobe AIR 2013Having fun with Adobe AIR 2013
Having fun with Adobe AIR 2013luca mezzalira
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobililuca mezzalira
 
Flash Platform Ovierview
Flash Platform OvierviewFlash Platform Ovierview
Flash Platform Ovierviewluca mezzalira
 
Using design pattern for mobile
Using design pattern for mobileUsing design pattern for mobile
Using design pattern for mobileluca mezzalira
 
Sviluppo di contenuti Flash Platform su iOS e Android
Sviluppo di contenuti Flash Platform su iOS e AndroidSviluppo di contenuti Flash Platform su iOS e Android
Sviluppo di contenuti Flash Platform su iOS e Androidluca mezzalira
 
Flash Platform & Android
Flash Platform & AndroidFlash Platform & Android
Flash Platform & Androidluca mezzalira
 
Android Development with Flash Platform
Android Development with Flash PlatformAndroid Development with Flash Platform
Android Development with Flash Platformluca mezzalira
 

Plus de luca mezzalira (14)

Mvi an architecture for reactive programming
Mvi an architecture for reactive programmingMvi an architecture for reactive programming
Mvi an architecture for reactive programming
 
Cycle.js a reactive framework
Cycle.js  a reactive frameworkCycle.js  a reactive framework
Cycle.js a reactive framework
 
Reactive programming with cycle.js
Reactive programming with cycle.jsReactive programming with cycle.js
Reactive programming with cycle.js
 
Next generation of frontend architectures
Next generation of frontend architecturesNext generation of frontend architectures
Next generation of frontend architectures
 
Evolution of front end architectures
Evolution of front end architecturesEvolution of front end architectures
Evolution of front end architectures
 
Kaizen - the key of continuos improvement
Kaizen - the key of continuos improvementKaizen - the key of continuos improvement
Kaizen - the key of continuos improvement
 
Having fun with Adobe AIR 2013
Having fun with Adobe AIR 2013Having fun with Adobe AIR 2013
Having fun with Adobe AIR 2013
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobili
 
Flash Platform Ovierview
Flash Platform OvierviewFlash Platform Ovierview
Flash Platform Ovierview
 
Using design pattern for mobile
Using design pattern for mobileUsing design pattern for mobile
Using design pattern for mobile
 
Sviluppo di contenuti Flash Platform su iOS e Android
Sviluppo di contenuti Flash Platform su iOS e AndroidSviluppo di contenuti Flash Platform su iOS e Android
Sviluppo di contenuti Flash Platform su iOS e Android
 
Flash Platform & Android
Flash Platform & AndroidFlash Platform & Android
Flash Platform & Android
 
Adobe AIR & Printing
Adobe AIR & PrintingAdobe AIR & Printing
Adobe AIR & Printing
 
Android Development with Flash Platform
Android Development with Flash PlatformAndroid Development with Flash Platform
Android Development with Flash Platform
 

Actionscript 3 Design Pattern

  • 1. Your new superhero: AS3 design pattern Your new superhero: AS3 design pattern Wednesday, November 10, 2010
  • 2. Multiscreen development with Flash Platform Wednesday, November 10, 2010
  • 3. Design Pattern? In software engineering, a design pattern is a general reusable solution to a commonly occurring problem in software design. [...] It is a description or template for how to solve a problem that can be used in many different situations. Wednesday, November 10, 2010
  • 4. Design Pattern? • Development speed up • Utilizzati nelle micro architetture • Coprono molte casistiche comuni nei progetti • Aiutano nellla realizzazione dell’architettura • Rendono il progetto mantenibile e documentato • Spesso li usiamo ma non ce ne rendiamo conto Wednesday, November 10, 2010
  • 5. Concetti base OOP Object-oriented programming (OOP) is a programming paradigm that uses "objects" to design applications and computer programs OOP basic concepts: . Abstraction (model) . Encapsulation (black box) . Inheritance (extends) . Polymorphism (change in the same field) Wednesday, November 10, 2010
  • 6. Design Pattern? • Creational patterns • Structural patterns • Behavioral patterns • Concurrency patterns • Multiple patterns Wednesday, November 10, 2010
  • 7. Creational pattern • permettono di creare oggetti adatti alla situazione in cui verranno inseriti • Alcuni pattern: • Factory • Singleton • Object pool Wednesday, November 10, 2010
  • 8. Structural pattern • Semplificano il modo in cui mettono in relazione gli oggetti • Alcuni pattern: • Façade • Proxy • Decorator Wednesday, November 10, 2010
  • 9. Behavioral pattern • Identificano un metodo comune per comunicare tra oggetti • Alcuni pattern: • Command • Memento • Observer Wednesday, November 10, 2010
  • 10. I nostri nuovi eroi • Singleton (creational pattern) • Façade (structural pattern) • Proxy (structural pattern) • Command (behavioral pattern) • Observer (behavioral pattern) • Mediator (behavioral pattern) • MVC (multiple pattern) Wednesday, November 10, 2010
  • 11. Singleton • rappresentazione della Singleton matematica in programmazione • Un gruppo con un solo oggetto (es: {0}) Quando utilizzarla? Quando vogliamo creare oggetti univoci all’interno del nostro progetto (es.: Manager, Alert, Façade, ...) Wednesday, November 10, 2010
  • 13. Singleton vs Static class • Singleton può estendere classi e implementare interfaccie • Le Static class hanno solo metodi statici (ricordano molto il procedurale), in più non viene istanziata • Con la Singleton posso istanziare anche classi derivate Wednesday, November 10, 2010
  • 14. Façade • l’accesso semplificato ad un insieme di oggetti strutturati o ad un oggetto complesso • riduce le dipendenze tra la libreria di oggetti e quelli che li utilizzano Quando utilizzarla? Quando vogliamo semplificare l’accesso ad una parte del codice Wednesday, November 10, 2010
  • 17. Proxy • placeholder di un oggetto come un file del sistema, una connessione remota a dati... • Il virtual proxy in particolare è molto adatto per il caricamento di file grafici esterni Quando utilizzarla? Ogni volta che utilizzo la classe Loader di Actionscript Wednesday, November 10, 2010
  • 19. Command • Un oggetto che contiene le informazioni (nome del metodo, l’oggetto che lo contiene e i parametri da passare) utili per richiamare un metodo • Possiamo creare i Macro Commands e i Simple Commands Quando utilizzarla? Ogni volta che l’utente interagisce con la GUI della nostra applicazione Wednesday, November 10, 2010
  • 21. Observer • Un oggetto principale (Subject) tiene una lista di oggetti osserverti (Observer) e notifica ogni cambio di stato ad ogni oggetto osservato. Quando utilizzarla? Al posto degli eventi possiamo usare le notifiche che rendono il nostro sistema più leggero e performante Wednesday, November 10, 2010
  • 22. Observer • Subject Interface • Observer Interface Wednesday, November 10, 2010
  • 23. Mediator • metodo per far comunicare 2 oggetti rendendoli totalmente indipendenti tra loro Quando utilizzarla? Quando vogliamo far comunicare le view con il resto dell’applicazione Wednesday, November 10, 2010
  • 24. MVC • Model View Control divide la parte di visualizzazione dell’interfaccia dalla parte logica dell’applicazione • Il Model è dove vado a gestire i dati dell’applicazione (NO DATABASE!) • La View è la parte di interfaccia vista dagli utenti • Il Controller riceve gli input dell’utente e dialoga con il Model per recuperare i dati che saranno poi visualizzati dalla View Wednesday, November 10, 2010
  • 26. Dependency Injection • Viene utilizzata per far collaborare due o più oggetti mantenendo però un accoppiamento debole tra essi • Aiuta nella mantenibilità dei progetti e nel unit testing del progetto stesso • Molte micro-architettura utilizzano questa tecnica (Parsley, SWIZ, Spring AS, Mate, RobotLegs, ...) Wednesday, November 10, 2010
  • 28. Useremo i Design Pattern?! Partendo dal presupposto che ci vorrà tempo per impararli e riconoscere quando usarli, ma... Wednesday, November 10, 2010
  • 29. Libri da non perdere! http://www.as3dp.com/ Wednesday, November 10, 2010
  • 30. Domande e risposte blog: http://lucamezzalira.com twitter: lucamezzalira email: luca@mart3.org Wednesday, November 10, 2010