30
Your new superhero: AS3 design pattern Your new superhero: AS3 design pattern Wednesday, November 10, 2010

Actionscript 3 Design Pattern

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Actionscript 3 Design Pattern

Your new superhero:AS3 design pattern

Your new superhero: AS3 design patternWednesday, November 10, 2010

Page 2: Actionscript 3 Design Pattern

Multiscreen development with Flash Platform

Wednesday, November 10, 2010

Page 3: Actionscript 3 Design Pattern

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

Page 4: Actionscript 3 Design Pattern

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

Page 5: Actionscript 3 Design Pattern

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

Page 6: Actionscript 3 Design Pattern

Design Pattern?

• Creational patterns

• Structural patterns

• Behavioral patterns

• Concurrency patterns

• Multiple patterns

Wednesday, November 10, 2010

Page 7: Actionscript 3 Design Pattern

Creational pattern

• permettono di creare oggetti adatti alla

situazione in cui verranno inseriti

• Alcuni pattern:

• Factory

• Singleton

• Object pool

Wednesday, November 10, 2010

Page 8: Actionscript 3 Design Pattern

Structural pattern

• Semplificano il modo in cui mettono in relazione

gli oggetti

• Alcuni pattern:

• Façade

• Proxy

• Decorator

Wednesday, November 10, 2010

Page 9: Actionscript 3 Design Pattern

Behavioral pattern

• Identificano un metodo comune per comunicare

tra oggetti

• Alcuni pattern:

• Command

• Memento

• Observer

Wednesday, November 10, 2010

Page 10: Actionscript 3 Design Pattern

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

Page 11: Actionscript 3 Design Pattern

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

Page 12: Actionscript 3 Design Pattern

Singleton

Wednesday, November 10, 2010

Page 13: Actionscript 3 Design Pattern

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

Page 14: Actionscript 3 Design Pattern

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

Page 15: Actionscript 3 Design Pattern

Façade

Wednesday, November 10, 2010

Page 16: Actionscript 3 Design Pattern

Façade

Wednesday, November 10, 2010

Page 17: Actionscript 3 Design Pattern

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

Page 18: Actionscript 3 Design Pattern

Proxy

Wednesday, November 10, 2010

Page 19: Actionscript 3 Design Pattern

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

Page 20: Actionscript 3 Design Pattern

Command

Wednesday, November 10, 2010

Page 21: Actionscript 3 Design Pattern

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

Page 22: Actionscript 3 Design Pattern

Observer• Subject Interface

• Observer Interface

Wednesday, November 10, 2010

Page 23: Actionscript 3 Design Pattern

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

Page 24: Actionscript 3 Design Pattern

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

Page 25: Actionscript 3 Design Pattern

Wednesday, November 10, 2010

Page 26: Actionscript 3 Design Pattern

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

Page 27: Actionscript 3 Design Pattern

Dependency Injection

Wednesday, November 10, 2010

Page 28: Actionscript 3 Design Pattern

Useremo i Design Pattern?!

Partendo dal presupposto che ci vorrà tempo per

impararli e riconoscere quando usarli, ma...

Wednesday, November 10, 2010

Page 29: Actionscript 3 Design Pattern

Libri da non perdere!

http://www.as3dp.com/

Wednesday, November 10, 2010

Page 30: Actionscript 3 Design Pattern

Domande e risposte

blog: http://lucamezzalira.comtwitter: lucamezzaliraemail: [email protected]

Wednesday, November 10, 2010