SlideShare a Scribd company logo
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

More Related Content

PPT
Agent UML
PPT
Social Media minimalist
PDF
Diseño editorial presentación
PPTX
Ejemplos de Retículas
PPTX
Diagramación o Maquetación
PDF
InDesign y el diseño de retículas
PDF
Unidad 4 - Retículas
PPT
Pawer de computacion 2
Agent UML
Social Media minimalist
Diseño editorial presentación
Ejemplos de Retículas
Diagramación o Maquetación
InDesign y el diseño de retículas
Unidad 4 - Retículas
Pawer de computacion 2

Viewers also liked (18)

PPS
Bolsa de Valores
PPT
Nebula
PDF
HOSHVA PR Obolon Case (eng)
PPTX
Influencia de la tecnología en la educación
ODP
Ventajas y desventajas del Internet
PPSX
El Rosedal de Buenos Aires
PPTX
5 el esfuerzo cognitivo en la toma de decisiones (2)
PDF
Email Marketing
PDF
Autodeterminacion
PPT
Leccion1aries
PPT
TIC - Tecnologias da Comunicacao e da Informacao no Contexto Escolar
PPT
Analisis Urbano
PPTX
Teori piag
PDF
Especialidade de inclusão item 7
PPTX
Poster Presentations
DOC
Reciclaje en los hospitales. pp 17-18
PDF
PROJETO DO TRABALHO - APOSTILA - PARTE III
Bolsa de Valores
Nebula
HOSHVA PR Obolon Case (eng)
Influencia de la tecnología en la educación
Ventajas y desventajas del Internet
El Rosedal de Buenos Aires
5 el esfuerzo cognitivo en la toma de decisiones (2)
Email Marketing
Autodeterminacion
Leccion1aries
TIC - Tecnologias da Comunicacao e da Informacao no Contexto Escolar
Analisis Urbano
Teori piag
Especialidade de inclusão item 7
Poster Presentations
Reciclaje en los hospitales. pp 17-18
PROJETO DO TRABALHO - APOSTILA - PARTE III
Ad

Similar to Actionscript 3 Design Pattern (20)

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

More from luca mezzalira (14)

PPTX
Mvi an architecture for reactive programming
PPTX
Cycle.js a reactive framework
PDF
Reactive programming with cycle.js
PDF
Next generation of frontend architectures
PPTX
Evolution of front end architectures
PDF
Kaizen - the key of continuos improvement
PDF
Having fun with Adobe AIR 2013
KEY
Flash Platform su dispositivi mobili
PDF
Flash Platform Ovierview
PDF
Using design pattern for mobile
PDF
Sviluppo di contenuti Flash Platform su iOS e Android
PDF
Flash Platform & Android
PDF
Adobe AIR & Printing
PDF
Android Development with Flash Platform
Mvi an architecture for reactive programming
Cycle.js a reactive framework
Reactive programming with cycle.js
Next generation of frontend architectures
Evolution of front end architectures
Kaizen - the key of continuos improvement
Having fun with Adobe AIR 2013
Flash Platform su dispositivi mobili
Flash Platform Ovierview
Using design pattern for mobile
Sviluppo di contenuti Flash Platform su iOS e Android
Flash Platform & Android
Adobe AIR & Printing
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