SlideShare a Scribd company logo
Design
Patterns
© 2014 Luster
Me
Reference
啓
Object
Oriented
Basic
⽤用情境,學設計模式
Design Patterns in Luster
Design Patterns in Luster
Class Diagram
MallardDuck
display() { }
swim()
quack()
RedheadDuck
display() { }
swim()
quack()
Class Diagram
MallardDuck
display() { }
swim()
quack()
RedheadDuck
display() { }
swim()
quack()
Duck
Class Diagram
MallardDuck
display() { } display() { }
RedheadDuck
Duck
swim()
quack()
Class Diagram
MallardDuck
display() { } display() { }
RedheadDuck
Duck
swim()
quack()
display()
Class Diagram
MallardDuck
display() { } display() { }
RedheadDuck
Duck
swim()
quack()
display()
Design Patterns in Luster
模擬鴨子,全 改版
讓鴨子飛新
“
”
MallardDuck
display() { }
Duck
quack()
display()
swim()
RedheadDuck
display() { }
Class Diagram
MallardDuck
display() { }
Duck
quack()
display()
swim()
RedheadDuck
display() { }
fly()
Jason’s Class Diagram
公測那一天
黃色塑膠鴨竟然也會飛了- -|||
Design Patterns in Luster
What’s happened ?
Duck
quack()
display()
swim()
fly()
RubberDuck
quack() { 吱吱叫; }
@Override
display() { }
Design Patterns in Luster
Duck
quack()
display()
swim()
fly()
RubberDuck
display() { }
quack() { 吱吱叫; }
@Override
“
”
Jason’s Class Diagram II
Duck
quack()
display()
swim()
fly()
RubberDuck
quack() { 吱吱叫; }
@Override
display() { }
fly() { // Do nothing! }
@Override
“
”
FireDuck
quack() { // Do nothing! }
@Override
display() { }
fly() { // Do nothing! }
@Override
swim() { // Do nothing! }
@Override
A.
B.
C.
D.
E.
F.
“ ”
“ ”
“ ”
而且又繼續用繼承的方式,那我豈不是要
逐鴨審查
而且又繼續用繼承的方式,那我豈不是要
“
”
Duck
display()
swim()Flyable
fly()
Quackable
quack()
MallardDuck RedheadDuck RubberDuck
“
”
Duck
display()
swim()Flyable
fly()
Quackable
quack()
MallardDuck
display()
RedheadDuck
display()
RubberDuck
display()
“
”
Duck
display()
swim()Flyable
fly()
Quackable
quack()
MallardDuck
fly()
display()
RedheadDuck
fly()
display()
RubberDuck
display()
“
”
Duck
display()
swim()Flyable
fly()
Quackable
quack()
MallardDuck
fly()
display()
quack()
RedheadDuck
fly()
display()
quack()
RubberDuck
display()
quack()
“
”
Duck
display()
swim()Flyable
fly()
Quackable
quack()
MallardDuck
display()
RedheadDuck
display()
RubberDuck
display()
“
”
fly()
quack()
fly()
quack()
quack()
Design Patterns in Luster
設計守則
Design Principle
1
Design Patterns in Luster
Design Patterns in Luster
Design Patterns in Luster
Design Patterns in Luster
Design Patterns in Luster
Design Patterns in Luster
1
2
Program to an !
interface,!
not an implementation.
2
Design Patterns in Luster
Example
Soldier
attack()
Sniper
attack() {!
! snipe();!
}
snipe()
Stormtrooper
attack() {!
! shoot();!
}
shoot()
Program to an implement
Sniper soldier = new Sniper();
soldier.attack();
Program to an interface
Sniper soldier = new Sniper();
soldier.attack();
Soldier soldier = new Sniper();
soldier.attack();
Sniper soldier = new Sniper();
soldier.attack();
Soldier soldier = new Sniper();
soldier.attack();
Soldier soldier = getSoldier();
soldier.attack();
Program to an interface
Design Patterns in Luster
QuackBehavior
quack()
<< interface >>
FlyBehavior
fly()
<< interface >>
QuackBehavior
quack()
<< interface >>
FlyBehavior
fly()
<< interface >>
Squeak
quack() { 吱吱叫; }
MuteQuack
quack() { 不會叫; }
Quack
quack() { 呱呱叫; }
FlyWithWings
fly() { ⽤用翅膀飛; }
FlyWithRocket
fly() { ⽤用⽕火箭飛; }
FlyNoWay
fly() { 不會飛; }
Duck
display()
swim()
Duck
display()
swim()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
public abstract class Duck {
QuackBehavior quackBehavior;
FlyBehavior flyBehavior;
}
Duck
display()
swim()
performQuack()
performFly()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
public abstract class Duck {
QuackBehavior quackBehavior;
FlyBehavior flyBehavior;
!
public void performQuack() {
quackBehavior.quack();
}
public void performFly() {…}
}
Duck
display()
swim()
performQuack()
performFly()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
public abstract class Duck {
QuackBehavior quackBehavior;
FlyBehavior flyBehavior;
!
public void performQuack() {
!
}
public void performFly() {…}
}
quackBehavior.quack();
public abstract class Duck {
QuackBehavior quackBehavior;
FlyBehavior flyBehavior;
!
public void performQuack() {
quackBehavior.quack();
}
public void performFly() {…}
}
public abstract class Duck {
QuackBehavior quackBehavior;
FlyBehavior flyBehavior;
!
public void performQuack() {
quackBehavior.quack();
}
public void performFly() {…}
}
public class MallardDuck extends Duck {
!
public MallardDuck() {
quackBehavior = new Quack();
flyBehavior = new FlyWithNoWings();
}
!
public void display() {…}
}
Design Patterns in Luster
public class DuckSimulator {
!
public static void main(String[] args) {
Duck mallard = new MallardDuck();
mallard.performQuack();
}
}
public class DuckSimulator {
!
public static void main(String[] args) {
Duck mallard = new MallardDuck();
mallard.performQuack();
}
}
Design Patterns in Luster
Duck
display()
swim()
performQuack()
performFly()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
public abstract class Duck {
QuackBehavior quackBehavior;
FlyBehavior flyBehavior;
!
public void performQuack() {
quackBehavior.quack();
}
public void performFly() {…}
!
}
public abstract class Duck {
QuackBehavior quackBehavior;
FlyBehavior flyBehavior;
!
public void performQuack() {
quackBehavior.quack();
}
public void performFly() {…}
!
}
Duck
display()
swim()
performQuack()
performFly()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
setQuackBehavior()
setFlyBehavior()
Duck
display()
swim()
performQuack()
performFly()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
setQuackBehavior()
setFlyBehavior()
public abstract class Duck {
QuackBehavior quackBehavior;
FlyBehavior flyBehavior;
!
public void performQuack() {
quackBehavior.quack();
}
public void performFly() {…}
!
public void setQuackBehavior(
QuackBehavior behavior) {
this.quackBehavior = behavior;
}
public void setFlyBehavior…
}
Design Patterns in Luster
public class DuckSimulator {
!
public static void main(String[] args) {
Duck mallard = new MallardDuck();
mallard.performQuack();
mallard.setQuackBehavior(new Squeak());
mallard.performQuack();
}
}
public class DuckSimulator {
!
public static void main(String[] args) {
Duck mallard = new MallardDuck();
mallard.performQuack();
mallard.setQuackBehavior(new Squeak());
mallard.performQuack();
}
}
public class DuckSimulator {
!
public static void main(String[] args) {
Duck mallard = new MallardDuck();
mallard.performQuack();
mallard.setQuackBehavior(new Squeak());
mallard.performQuack();
}
}
Design Patterns in Luster
QuackBehavior
quack()
<< interface >>
Quack
quack() { 呱; }
MuteQuack
quack() {}
Squeak
quack() { 吱; }
FlyBehavior
fly()
<< interface >>
FlyWithWings
fly() { 拍翅膀; }
FlyNoWay
fly() {}
FlyWithRocket
fly() { 噴射; }
Duck QuackBehavior
quack()
<< interface >>
Quack
quack() { 呱; }
MuteQuack
quack() {}
Squeak
quack() { 吱; }
FlyBehavior
fly()
<< interface >>
FlyWithWings
fly() { 拍翅膀; }
FlyNoWay
fly() {}
FlyWithRocket
fly() { 噴射; }
MallardDuck
display()
swim()
RedheadDuck
display()
swim()
RubberDuck
display()
swim()
QuackBehavior
quack()
<< interface >>
Quack
quack() { 呱; }
MuteQuack
quack() {}
Squeak
quack() { 吱; }
FlyBehavior
fly()
<< interface >>
FlyWithWings
fly() { 拍翅膀; }
FlyNoWay
fly() {}
FlyWithRocket
fly() { 噴射; }
MallardDuck
display()
RedheadDuck
display()
RubberDuck
display()
Duck
display()
swim()
Duck
display()
swim()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
QuackBehavior
quack()
<< interface >>
Quack
quack() { 呱; }
MuteQuack
quack() {}
Squeak
quack() { 吱; }
FlyBehavior
fly()
<< interface >>
FlyWithWings
fly() { 拍翅膀; }
FlyNoWay
fly() {}
FlyWithRocket
fly() { 噴射; }
MallardDuck
display()
RedheadDuck
display()
RubberDuck
display()
Duck
display()
swim()
performQuack()
performFly()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
QuackBehavior
quack()
<< interface >>
Quack
quack() { 呱; }
MuteQuack
quack() {}
Squeak
quack() { 吱; }
FlyBehavior
fly()
<< interface >>
FlyWithWings
fly() { 拍翅膀; }
FlyNoWay
fly() {}
FlyWithRocket
fly() { 噴射; }
MallardDuck
display()
RedheadDuck
display()
RubberDuck
display()
Duck
display()
swim()
performQuack()
performFly()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
setQuackBehavior()
setFlyBehavior()
QuackBehavior
quack()
<< interface >>
Quack
quack() { 呱; }
MuteQuack
quack() {}
Squeak
quack() { 吱; }
FlyBehavior
fly()
<< interface >>
FlyWithWings
fly() { 拍翅膀; }
FlyNoWay
fly() {}
FlyWithRocket
fly() { 噴射; }
MallardDuck
display()
RedheadDuck
display()
RubberDuck
display()
Duck
display()
swim()
performQuack()
performFly()
QuackBehavior quackBehavior
FlyBehavior flyBehavior
setQuackBehavior()
setFlyBehavior()
QuackBehavior
quack()
<< interface >>
Quack
quack() { 呱; }
MuteQuack
quack() {}
Squeak
quack() { 吱; }
FlyBehavior
fly()
<< interface >>
FlyWithWings
fly() { 拍翅膀; }
FlyNoWay
fly() {}
FlyWithRocket
fly() { 噴射; }
MallardDuck
display()
RedheadDuck
display()
RubberDuck
display()
3
Design Patterns in Luster
Design Patterns in Luster
Design Patterns in Luster
策略模式
Strategy
Strategy
Strategy
Strategy
Strategy
為什麼我們需要學設計模式
Z > B
Z > B
Design Patterns in Luster
Design Patterns in Luster
Jas
!
Design Patterns in Luster
Design Patterns in Luster
結論
變化
設計
Thanks
Jason Chung
Ad

More Related Content

What's hot (20)

Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingRiga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Anton Arhipov
 
Greach, GroovyFx Workshop
Greach, GroovyFx WorkshopGreach, GroovyFx Workshop
Greach, GroovyFx Workshop
Dierk König
 
Kotlin : Advanced Tricks - Ubiratan Soares
Kotlin : Advanced Tricks - Ubiratan SoaresKotlin : Advanced Tricks - Ubiratan Soares
Kotlin : Advanced Tricks - Ubiratan Soares
iMasters
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassle
Anton Arhipov
 
Why Sifu
Why SifuWhy Sifu
Why Sifu
LambdaWorks
 
RxJS - 封裝程式的藝術
RxJS - 封裝程式的藝術RxJS - 封裝程式的藝術
RxJS - 封裝程式的藝術
名辰 洪
 
Android TDD & CI
Android TDD & CIAndroid TDD & CI
Android TDD & CI
Marcin Gryszko
 
Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9
Bongwon Lee
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
andyrobinson8
 
Unbearable Test Code Smell
Unbearable Test Code SmellUnbearable Test Code Smell
Unbearable Test Code Smell
Steven Mak
 
java sockets
 java sockets java sockets
java sockets
Enam Ahmed Shahaz
 
Classic Games Development with Drools
Classic Games Development with DroolsClassic Games Development with Drools
Classic Games Development with Drools
Mark Proctor
 
Ruby is Awesome
Ruby is AwesomeRuby is Awesome
Ruby is Awesome
Astrails
 
Cha
ChaCha
Cha
Cielo Rose
 
TDC2018SP | Trilha Go - Processando analise genetica em background com Go
TDC2018SP | Trilha Go - Processando analise genetica em background com GoTDC2018SP | Trilha Go - Processando analise genetica em background com Go
TDC2018SP | Trilha Go - Processando analise genetica em background com Go
tdc-globalcode
 
JPoint 2016 - Валеев Тагир - Странности Stream API
JPoint 2016 - Валеев Тагир - Странности Stream APIJPoint 2016 - Валеев Тагир - Странности Stream API
JPoint 2016 - Валеев Тагир - Странности Stream API
tvaleev
 
Scala introduction
Scala introductionScala introduction
Scala introduction
vito jeng
 
ios,objective tutorial
ios,objective tutorial ios,objective tutorial
ios,objective tutorial
Bhavik Patel
 
The Magnificent Seven
The Magnificent SevenThe Magnificent Seven
The Magnificent Seven
Mike Fogus
 
스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내
Jung Kim
 
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloadingRiga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Riga DevDays 2017 - The hitchhiker’s guide to Java class reloading
Anton Arhipov
 
Greach, GroovyFx Workshop
Greach, GroovyFx WorkshopGreach, GroovyFx Workshop
Greach, GroovyFx Workshop
Dierk König
 
Kotlin : Advanced Tricks - Ubiratan Soares
Kotlin : Advanced Tricks - Ubiratan SoaresKotlin : Advanced Tricks - Ubiratan Soares
Kotlin : Advanced Tricks - Ubiratan Soares
iMasters
 
GeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassleGeeCON 2017 - TestContainers. Integration testing without the hassle
GeeCON 2017 - TestContainers. Integration testing without the hassle
Anton Arhipov
 
RxJS - 封裝程式的藝術
RxJS - 封裝程式的藝術RxJS - 封裝程式的藝術
RxJS - 封裝程式的藝術
名辰 洪
 
Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9Simulator customizing & testing for Xcode 9
Simulator customizing & testing for Xcode 9
Bongwon Lee
 
Unbearable Test Code Smell
Unbearable Test Code SmellUnbearable Test Code Smell
Unbearable Test Code Smell
Steven Mak
 
Classic Games Development with Drools
Classic Games Development with DroolsClassic Games Development with Drools
Classic Games Development with Drools
Mark Proctor
 
Ruby is Awesome
Ruby is AwesomeRuby is Awesome
Ruby is Awesome
Astrails
 
TDC2018SP | Trilha Go - Processando analise genetica em background com Go
TDC2018SP | Trilha Go - Processando analise genetica em background com GoTDC2018SP | Trilha Go - Processando analise genetica em background com Go
TDC2018SP | Trilha Go - Processando analise genetica em background com Go
tdc-globalcode
 
JPoint 2016 - Валеев Тагир - Странности Stream API
JPoint 2016 - Валеев Тагир - Странности Stream APIJPoint 2016 - Валеев Тагир - Странности Stream API
JPoint 2016 - Валеев Тагир - Странности Stream API
tvaleev
 
Scala introduction
Scala introductionScala introduction
Scala introduction
vito jeng
 
ios,objective tutorial
ios,objective tutorial ios,objective tutorial
ios,objective tutorial
Bhavik Patel
 
The Magnificent Seven
The Magnificent SevenThe Magnificent Seven
The Magnificent Seven
Mike Fogus
 
스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내스위프트를 여행하는 히치하이커를 위한 스타일 안내
스위프트를 여행하는 히치하이커를 위한 스타일 안내
Jung Kim
 

Viewers also liked (20)

前端魔法師召集令
前端魔法師召集令前端魔法師召集令
前端魔法師召集令
Jason Chung
 
Factory Pattern in Luster
Factory Pattern in LusterFactory Pattern in Luster
Factory Pattern in Luster
Jason Chung
 
JCConf TW 2014 - Modern Design Pattern
JCConf TW 2014 - Modern Design PatternJCConf TW 2014 - Modern Design Pattern
JCConf TW 2014 - Modern Design Pattern
Steven Wang
 
台灣創意週 - 創意烏托邦
台灣創意週 - 創意烏托邦台灣創意週 - 創意烏托邦
台灣創意週 - 創意烏托邦
Jack Dai
 
Let's talk about Web Design
Let's talk about Web DesignLet's talk about Web Design
Let's talk about Web Design
Abby Chiu
 
Maker in Luster
Maker in LusterMaker in Luster
Maker in Luster
Jason Chung
 
策略模式
策略模式 策略模式
策略模式
Jen-Hsuan Hsieh
 
Design & Thinking in Luster
Design & Thinking in LusterDesign & Thinking in Luster
Design & Thinking in Luster
Jason Chung
 
Design pattern strategy pattern 策略模式
Design pattern strategy pattern 策略模式Design pattern strategy pattern 策略模式
Design pattern strategy pattern 策略模式
Bill Lin
 
常見設計模式介紹
常見設計模式介紹常見設計模式介紹
常見設計模式介紹
Jace Ju
 
Design Pattern - Factory Pattern
Design Pattern - Factory PatternDesign Pattern - Factory Pattern
Design Pattern - Factory Pattern
Li-Wei Yao
 
Brand Strategy
Brand StrategyBrand Strategy
Brand Strategy
Dean Harris
 
Design disruption kalyan
Design disruption kalyanDesign disruption kalyan
Design disruption kalyan
WolfzHowl Strategic instigation
 
Deccan chargers-brand-strategy
Deccan chargers-brand-strategyDeccan chargers-brand-strategy
Deccan chargers-brand-strategy
WolfzHowl Strategic instigation
 
The perfect handjob
The perfect handjobThe perfect handjob
The perfect handjob
WolfzHowl Strategic instigation
 
Creating Great Branding Practices
Creating Great Branding PracticesCreating Great Branding Practices
Creating Great Branding Practices
Laura Sweeney
 
設計模式的解析與活用:分析
設計模式的解析與活用:分析設計模式的解析與活用:分析
設計模式的解析與活用:分析
Kane Shih
 
Temple Strategy - Product role in brand creation provocation
Temple Strategy - Product role in brand creation provocationTemple Strategy - Product role in brand creation provocation
Temple Strategy - Product role in brand creation provocation
WolfzHowl Strategic instigation
 
最终 大屏手机上的设计策略
最终 大屏手机上的设计策略最终 大屏手机上的设计策略
最终 大屏手机上的设计策略
麦哥UE
 
基富通證券品牌識別
基富通證券品牌識別基富通證券品牌識別
基富通證券品牌識別
紐約設計品牌顧問 New York Design (Principle)
 
前端魔法師召集令
前端魔法師召集令前端魔法師召集令
前端魔法師召集令
Jason Chung
 
Factory Pattern in Luster
Factory Pattern in LusterFactory Pattern in Luster
Factory Pattern in Luster
Jason Chung
 
JCConf TW 2014 - Modern Design Pattern
JCConf TW 2014 - Modern Design PatternJCConf TW 2014 - Modern Design Pattern
JCConf TW 2014 - Modern Design Pattern
Steven Wang
 
台灣創意週 - 創意烏托邦
台灣創意週 - 創意烏托邦台灣創意週 - 創意烏托邦
台灣創意週 - 創意烏托邦
Jack Dai
 
Let's talk about Web Design
Let's talk about Web DesignLet's talk about Web Design
Let's talk about Web Design
Abby Chiu
 
Design & Thinking in Luster
Design & Thinking in LusterDesign & Thinking in Luster
Design & Thinking in Luster
Jason Chung
 
Design pattern strategy pattern 策略模式
Design pattern strategy pattern 策略模式Design pattern strategy pattern 策略模式
Design pattern strategy pattern 策略模式
Bill Lin
 
常見設計模式介紹
常見設計模式介紹常見設計模式介紹
常見設計模式介紹
Jace Ju
 
Design Pattern - Factory Pattern
Design Pattern - Factory PatternDesign Pattern - Factory Pattern
Design Pattern - Factory Pattern
Li-Wei Yao
 
Creating Great Branding Practices
Creating Great Branding PracticesCreating Great Branding Practices
Creating Great Branding Practices
Laura Sweeney
 
設計模式的解析與活用:分析
設計模式的解析與活用:分析設計模式的解析與活用:分析
設計模式的解析與活用:分析
Kane Shih
 
Temple Strategy - Product role in brand creation provocation
Temple Strategy - Product role in brand creation provocationTemple Strategy - Product role in brand creation provocation
Temple Strategy - Product role in brand creation provocation
WolfzHowl Strategic instigation
 
最终 大屏手机上的设计策略
最终 大屏手机上的设计策略最终 大屏手机上的设计策略
最终 大屏手机上的设计策略
麦哥UE
 
Ad

Similar to Design Patterns in Luster (19)

Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Frederik Gevers Deynoot
 
Dart London hackathon
Dart  London hackathonDart  London hackathon
Dart London hackathon
chrisbuckett
 
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
Stephen Chin
 
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
Stephen Chin
 
JavaFX 2.0 With Alternative Languages - JavaOne 2011
JavaFX 2.0 With Alternative Languages - JavaOne 2011JavaFX 2.0 With Alternative Languages - JavaOne 2011
JavaFX 2.0 With Alternative Languages - JavaOne 2011
Stephen Chin
 
Metaprogramming in Haskell
Metaprogramming in HaskellMetaprogramming in Haskell
Metaprogramming in Haskell
Hiromi Ishii
 
Scala Intro
Scala IntroScala Intro
Scala Intro
Paolo Platter
 
Graphic programming using Turtle class in Python
Graphic programming using Turtle class in PythonGraphic programming using Turtle class in Python
Graphic programming using Turtle class in Python
KanadamKarteekaPavan1
 
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...
Naresha K
 
JavaFX 2.0 With Alternative Languages [Portuguese]
JavaFX 2.0 With Alternative Languages [Portuguese]JavaFX 2.0 With Alternative Languages [Portuguese]
JavaFX 2.0 With Alternative Languages [Portuguese]
Stephen Chin
 
JavaFX
JavaFXJavaFX
JavaFX
Raphael Marques
 
JavaFX Your Way: Building JavaFX Applications with Alternative Languages
JavaFX Your Way: Building JavaFX Applications with Alternative LanguagesJavaFX Your Way: Building JavaFX Applications with Alternative Languages
JavaFX Your Way: Building JavaFX Applications with Alternative Languages
Stephen Chin
 
Hidden rocks in Oracle ADF
Hidden rocks in Oracle ADFHidden rocks in Oracle ADF
Hidden rocks in Oracle ADF
Euegene Fedorenko
 
JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 Spring
Kiyotaka Oku
 
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen ChinHacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
jaxconf
 
Hacking JavaFX with Groovy, Clojure, Scala, and Visage
Hacking JavaFX with Groovy, Clojure, Scala, and VisageHacking JavaFX with Groovy, Clojure, Scala, and Visage
Hacking JavaFX with Groovy, Clojure, Scala, and Visage
Stephen Chin
 
Mini-curso JavaFX Aula1
Mini-curso JavaFX Aula1Mini-curso JavaFX Aula1
Mini-curso JavaFX Aula1
Raphael Marques
 
Canvas al ajillo
Canvas al ajilloCanvas al ajillo
Canvas al ajillo
Adrián García Lomas
 
How to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftHow to Clone Flappy Bird in Swift
How to Clone Flappy Bird in Swift
Giordano Scalzo
 
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Ernst kuilder (Nelen & Schuurmans) - De waterkaart van Nederland: technisch g...
Frederik Gevers Deynoot
 
Dart London hackathon
Dart  London hackathonDart  London hackathon
Dart London hackathon
chrisbuckett
 
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
Stephen Chin
 
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
JavaFX 2.0 With Alternative Languages - Groovy, Clojure, Scala, Fantom, and V...
Stephen Chin
 
JavaFX 2.0 With Alternative Languages - JavaOne 2011
JavaFX 2.0 With Alternative Languages - JavaOne 2011JavaFX 2.0 With Alternative Languages - JavaOne 2011
JavaFX 2.0 With Alternative Languages - JavaOne 2011
Stephen Chin
 
Metaprogramming in Haskell
Metaprogramming in HaskellMetaprogramming in Haskell
Metaprogramming in Haskell
Hiromi Ishii
 
Graphic programming using Turtle class in Python
Graphic programming using Turtle class in PythonGraphic programming using Turtle class in Python
Graphic programming using Turtle class in Python
KanadamKarteekaPavan1
 
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...
Effective Java with Groovy & Kotlin - How Languages Influence Adoption of Goo...
Naresha K
 
JavaFX 2.0 With Alternative Languages [Portuguese]
JavaFX 2.0 With Alternative Languages [Portuguese]JavaFX 2.0 With Alternative Languages [Portuguese]
JavaFX 2.0 With Alternative Languages [Portuguese]
Stephen Chin
 
JavaFX Your Way: Building JavaFX Applications with Alternative Languages
JavaFX Your Way: Building JavaFX Applications with Alternative LanguagesJavaFX Your Way: Building JavaFX Applications with Alternative Languages
JavaFX Your Way: Building JavaFX Applications with Alternative Languages
Stephen Chin
 
JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 Spring
Kiyotaka Oku
 
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen ChinHacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
Hacking JavaFX with Groovy, Clojure, Scala, and Visage: Stephen Chin
jaxconf
 
Hacking JavaFX with Groovy, Clojure, Scala, and Visage
Hacking JavaFX with Groovy, Clojure, Scala, and VisageHacking JavaFX with Groovy, Clojure, Scala, and Visage
Hacking JavaFX with Groovy, Clojure, Scala, and Visage
Stephen Chin
 
How to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftHow to Clone Flappy Bird in Swift
How to Clone Flappy Bird in Swift
Giordano Scalzo
 
Ad

Recently uploaded (20)

Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Christian Folini
 
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Vasileios Komianos
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Distributionally Robust Statistical Verification with Imprecise Neural Networks
Distributionally Robust Statistical Verification with Imprecise Neural NetworksDistributionally Robust Statistical Verification with Imprecise Neural Networks
Distributionally Robust Statistical Verification with Imprecise Neural Networks
Ivan Ruchkin
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Building a research repository that works by Clare Cady
Building a research repository that works by Clare CadyBuilding a research repository that works by Clare Cady
Building a research repository that works by Clare Cady
UXPA Boston
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
Build With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdfBuild With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdf
Google Developer Group - Harare
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Sustainable_Development_Goals_INDIANWraa
Sustainable_Development_Goals_INDIANWraaSustainable_Development_Goals_INDIANWraa
Sustainable_Development_Goals_INDIANWraa
03ANMOLCHAURASIYA
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdfICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
Eryk Budi Pratama
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Christian Folini
 
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Digital Technologies for Culture, Arts and Heritage: Insights from Interdisci...
Vasileios Komianos
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Mastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B LandscapeMastering Testing in the Modern F&B Landscape
Mastering Testing in the Modern F&B Landscape
marketing943205
 
Distributionally Robust Statistical Verification with Imprecise Neural Networks
Distributionally Robust Statistical Verification with Imprecise Neural NetworksDistributionally Robust Statistical Verification with Imprecise Neural Networks
Distributionally Robust Statistical Verification with Imprecise Neural Networks
Ivan Ruchkin
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
Building a research repository that works by Clare Cady
Building a research repository that works by Clare CadyBuilding a research repository that works by Clare Cady
Building a research repository that works by Clare Cady
UXPA Boston
 
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
OpenAI Just Announced Codex: A cloud engineering agent that excels in handlin...
SOFTTECHHUB
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Sustainable_Development_Goals_INDIANWraa
Sustainable_Development_Goals_INDIANWraaSustainable_Development_Goals_INDIANWraa
Sustainable_Development_Goals_INDIANWraa
03ANMOLCHAURASIYA
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdfICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
Eryk Budi Pratama
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 

Design Patterns in Luster

  翻译: