Design Pattern From Java To Ruby
-
Upload
yelogic -
Category
Technology
-
view
1.253 -
download
0
Transcript of Design Pattern From Java To Ruby
![Page 1: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/1.jpg)
Design Pattern -- from Java to Ruby
RichardEkohe
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 2: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/2.jpg)
Why use Design Pattern
For reuse
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 3: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/3.jpg)
Why use Design Pattern
For communication
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 4: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/4.jpg)
Why use Design Pattern
For communication
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Define a Node interface, all of leaf nodes and internal nodes should implements the interface, internal nodes has a list that
includes other internal nodes and leaf nodes and it can add and remove sub-nodes. But leaf node can’t have add sub-node method.
![Page 5: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/5.jpg)
Why use Design Pattern
For communication
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Define a Node interface, all of leaf nodes and internal nodes should implements the interface, internal nodes has a list that
includes other internal nodes and leaf nodes and it can add and remove sub-nodes. But leaf node can’t have add sub-node method.
![Page 6: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/6.jpg)
Why use Design Pattern
For communication
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Define a Node interface, all of leaf nodes and internal nodes should implements the interface, internal nodes has a list that
includes other internal nodes and leaf nodes and it can add and remove sub-nodes. But leaf node can’t have add sub-node method.
![Page 7: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/7.jpg)
Why use Design Pattern
For communication
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 8: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/8.jpg)
Why use Design Pattern
For communication
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Composite Pattern
![Page 9: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/9.jpg)
Why use Design Pattern
For communication
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Composite Pattern
![Page 10: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/10.jpg)
Difference from java to ruby
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 11: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/11.jpg)
Difference from java to ruby
Classes are Objects
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 12: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/12.jpg)
Difference from java to ruby
Classes are Objects
Messages, not function call
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 13: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/13.jpg)
Difference from java to ruby
Classes are Objects
Messages, not function call
Duck Typing
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 14: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/14.jpg)
Difference from java to ruby
Classes are Objects
Messages, not function call
Duck Typing
Mixin
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 15: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/15.jpg)
Singleton Pattern
ensures a class has only one instance, and provides a global point of access to it
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 16: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/16.jpg)
Singleton Pattern
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 17: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/17.jpg)
Singleton Pattern
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
You are my only wife
![Page 18: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/18.jpg)
Singleton Pattern
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
You are my only wife
You are my only husband
![Page 19: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/19.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- java
![Page 20: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/20.jpg)
Eager loading
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- java
![Page 21: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/21.jpg)
Eager loading
Lazy loading
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- java
![Page 22: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/22.jpg)
Ruby built-in singleton
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- ruby
![Page 23: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/23.jpg)
Ruby built-in singleton
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- ruby
![Page 24: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/24.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 25: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/25.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 26: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/26.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 27: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/27.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 28: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/28.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 29: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/29.jpg)
Built-in (Singleton)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern
![Page 30: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/30.jpg)
Observer Pattern
defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 31: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/31.jpg)
Observer Pattern
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Temperature
Detector
Subscribe
![Page 32: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/32.jpg)
Observer Pattern
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Temperature
Detector
SubscribeTempraturechanged
![Page 33: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/33.jpg)
Observer Pattern
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Temperature
Detector
Subscribe
Notify Notify
Tempraturechanged
![Page 34: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/34.jpg)
Define interface by yourself
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java
![Page 35: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/35.jpg)
Define interface by yourself
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java
![Page 36: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/36.jpg)
Define interface by yourself
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java
![Page 37: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/37.jpg)
Define interface by yourself
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java
![Page 38: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/38.jpg)
Define interface by yourself
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java
![Page 39: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/39.jpg)
Define interface by yourself
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java
![Page 40: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/40.jpg)
Java built-in observer
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java
![Page 41: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/41.jpg)
Java built-in observer
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java
![Page 42: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/42.jpg)
Ruby built-in observer
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- ruby
![Page 43: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/43.jpg)
Ruby built-in observer
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- ruby
![Page 44: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/44.jpg)
Ruby built-in observer
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- ruby
![Page 45: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/45.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 46: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/46.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 47: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/47.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 48: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/48.jpg)
Built-in (Singleton, Observer)
Mixin
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern
![Page 49: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/49.jpg)
Iterator Pattern provides a way to access the elements of an
aggregate object sequentially without exposing its underlying representation
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 50: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/50.jpg)
Iterator Pattern
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Count 1 2 3 10
![Page 51: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/51.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
Iterator Pattern -- java Java built-in Iterator and mock Iterator
![Page 52: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/52.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
Iterator Pattern -- java Java built-in Iterator and mock Iterator
![Page 53: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/53.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
Iterator Pattern -- java Java built-in Iterator and mock Iterator
![Page 54: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/54.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
Iterator Pattern -- java Java built-in Iterator and mock Iterator
![Page 55: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/55.jpg)
Nothing, just .each
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Iterator Pattern -- ruby
![Page 56: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/56.jpg)
Nothing, just .each
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Iterator Pattern -- ruby
![Page 57: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/57.jpg)
Nothing, just .each
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Iterator Pattern -- ruby
![Page 58: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/58.jpg)
Built-in (Singleton, Observer, Iterator)
Mixin
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern
![Page 59: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/59.jpg)
returns an instance of one of several possible classes, depending on the data provided to it.
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern
![Page 60: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/60.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern
![Page 61: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/61.jpg)
Compare with String, a lot of if/else
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
![Page 62: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/62.jpg)
Compare with String, a lot of if/else
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
![Page 63: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/63.jpg)
Compare with String, a lot of if/else
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
![Page 64: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/64.jpg)
Compare with String, a lot of if/else
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
![Page 65: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/65.jpg)
Compare with String, a lot of if/else
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
![Page 66: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/66.jpg)
Compare with String, a lot of if/else
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
![Page 67: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/67.jpg)
Classes are Objects
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- ruby
![Page 68: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/68.jpg)
Classes are Objects
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- ruby
![Page 69: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/69.jpg)
Classes are Objects
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- ruby
![Page 70: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/70.jpg)
Classes are Objects
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- ruby
![Page 71: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/71.jpg)
Built-in (Singleton, Observer, Iterator)
Mixin
Classes are Objects
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern
![Page 72: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/72.jpg)
encapsulates a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern
![Page 73: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/73.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern
![Page 74: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/74.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java
![Page 75: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/75.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java
![Page 76: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/76.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java
![Page 77: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/77.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java
![Page 78: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/78.jpg)
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java
![Page 79: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/79.jpg)
Proc
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- ruby
![Page 80: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/80.jpg)
Proc
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- ruby
![Page 81: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/81.jpg)
Built-in (Singleton, Observer, Iterator)
Mixin
Classes are Objects
Proc
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern
![Page 82: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/82.jpg)
Make use of ruby advantage
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Other Design Patterns
![Page 83: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/83.jpg)
Ruby's Principle
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 84: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/84.jpg)
Ruby's Principle
DRY – Don't Repeat Yourself
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 85: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/85.jpg)
Ruby's Principle
DRY – Don't Repeat Yourself
Convention Over Configuration
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 86: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/86.jpg)
Resources
Design Pattern – Elements of Reusable Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Head First Design Pattern
Kathy Sierra, Bert Bates
Design Pattern in Ruby
Russ Olsen
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
![Page 87: Design Pattern From Java To Ruby](https://reader036.fdocuments.in/reader036/viewer/2022062319/5554ef38b4c90566278b4ecc/html5/thumbnails/87.jpg)
Q&A
happy to discuss and fix my mistakes
www.ekohe.comWeb Development & Graphic DesignChina Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development