SlideShare uma empresa Scribd logo
1 de 87
Baixar para ler offline
Design Pattern
                                                                          -- from Java to Ruby



                                                                    Richard
                                                                      Ekohe




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Why use Design Pattern
                  For reuse




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Why use Design Pattern
                  For communication




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Why use Design Pattern
                                                                                            Define a Node interface, all of leaf nodes and
                                                                                                 internal nodes should implements the
                                                                                                interface, internal nodes has a list that
                  For communication                                                        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.




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Why use Design Pattern
                                                                                            Define a Node interface, all of leaf nodes and
                                                                                                 internal nodes should implements the
                                                                                                interface, internal nodes has a list that
                  For communication                                                        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.




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Why use Design Pattern
                                                                                            Define a Node interface, all of leaf nodes and
                                                                                                 internal nodes should implements the
                                                                                                interface, internal nodes has a list that
                  For communication                                                        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.




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Why use Design Pattern
                  For communication




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Why use Design Pattern
                  For communication
                                                                                                 Composite
                                                                                                  Pattern




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Why use Design Pattern
                  For communication
                                                                                                 Composite
                                                                                                  Pattern




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Difference from java to ruby




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Difference from java to ruby


               Classes are Objects




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Difference from java to ruby


               Classes are Objects
               Messages, not function call




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Difference from java to ruby


               Classes are Objects
               Messages, not function call
               Duck Typing




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Difference from java to ruby


               Classes are Objects
               Messages, not function call
               Duck Typing
               Mixin




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern

                  ensures a class has only one instance, and
                   provides a global point of access to it




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern
              You are my
               only wife




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern
                                                                                                     You are my
              You are my
                                                                                                    only husband
               only wife




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- java




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- java

                  Eager loading




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- java

                  Eager loading
                  Lazy loading




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- ruby
                  Ruby built-in singleton




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Singleton Pattern -- ruby
                  Ruby built-in singleton




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern
                  Built-in (Singleton)




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
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.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern




                                                                  Subscribe

                                                           Temperature
                                                             Detector


www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern




                                                                  Subscribe
                                                                                                        Temprature
                                                           Temperature
                                                                                                        changed
                                                             Detector


www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern




                                                 Notify                                   Notify



                                                                  Subscribe
                                                                                                        Temprature
                                                           Temperature
                                                                                                        changed
                                                             Detector


www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java

                  Define interface by yourself




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java

                  Define interface by yourself




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java

                  Define interface by yourself




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java

                  Define interface by yourself




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java

                  Define interface by yourself




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java

                  Define interface by yourself




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java

                  Java built-in observer




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- java

                  Java built-in observer




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- ruby

                  Ruby built-in observer




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- ruby

                  Ruby built-in observer




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Observer Pattern -- ruby

                  Ruby built-in observer




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern

                  Built-in (Singleton, Observer)
                  Mixin




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Iterator Pattern
                  provides a way to access the elements of an
                   aggregate object sequentially without exposing
                   its underlying representation




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Iterator Pattern

                           Count                 1         2        3                                   10




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Iterator Pattern -- java
           Java built-in Iterator and mock Iterator




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
Iterator Pattern -- java
           Java built-in Iterator and mock Iterator




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
Iterator Pattern -- java
           Java built-in Iterator and mock Iterator




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
Iterator Pattern -- java
           Java built-in Iterator and mock Iterator




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
Iterator Pattern -- ruby
                  Nothing, just .each




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Iterator Pattern -- ruby
                  Nothing, just .each




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Iterator Pattern -- ruby
                  Nothing, just .each




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern

                  Built-in (Singleton, Observer, Iterator)
                  Mixin




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern
                  returns an instance of one of several possible
                   classes, depending on the data provided to it.




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
                  Compare with String, a lot of if/else




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
                  Compare with String, a lot of if/else




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
                  Compare with String, a lot of if/else




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
                  Compare with String, a lot of if/else




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
                  Compare with String, a lot of if/else




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- java
                  Compare with String, a lot of if/else




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- ruby
                  Classes are Objects




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- ruby
                  Classes are Objects




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- ruby
                  Classes are Objects




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Simple Factory Pattern -- ruby
                  Classes are Objects




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern

                  Built-in (Singleton, Observer, Iterator)‫‏‬
                  Mixin
                  Classes are Objects




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern
                  encapsulates a request as an object, thereby
                   letting you parameterize clients with different
                   requests, queue or log requests, and support
                   undoable operations.




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- java




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- ruby
                  Proc




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Command Pattern -- ruby
                  Proc




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby for Design Pattern

                  Built-in (Singleton, Observer, Iterator)‫‏‬
                  Mixin
                  Classes are Objects
                  Proc




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Other Design Patterns




                                         Make use of ruby advantage




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby's Principle




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby's Principle

         DRY – Don't Repeat Yourself




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Ruby's Principle

         DRY – Don't Repeat Yourself
         Convention Over Configuration




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
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.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
Q&A



                                   happy to discuss and fix my mistakes




www.ekohe.com
Web Development & Graphic Design
China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development

Mais conteúdo relacionado

Semelhante a Design Pattern From Java To Ruby

Contributing To Rails By Plugin Gem
Contributing To Rails By Plugin GemContributing To Rails By Plugin Gem
Contributing To Rails By Plugin GemDaniel Lv
 
Rails bestpractices.com
Rails bestpractices.comRails bestpractices.com
Rails bestpractices.comRichard Huang
 
Static Code Analysis For Ruby
Static Code Analysis For RubyStatic Code Analysis For Ruby
Static Code Analysis For RubyRichard Huang
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
 
Ruby Kaigi09 China Rubyupdate20090718
Ruby Kaigi09 China Rubyupdate20090718Ruby Kaigi09 China Rubyupdate20090718
Ruby Kaigi09 China Rubyupdate20090718tengu
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010arif44
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First MileGourab Mitra
 
Css sprite best practices
Css sprite best practicesCss sprite best practices
Css sprite best practicesRichard Huang
 
Web application intro + a bit of ruby (revised)
Web application intro + a bit of ruby (revised)Web application intro + a bit of ruby (revised)
Web application intro + a bit of ruby (revised)Tobias Pfeiffer
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The EnterpriseMatt Aimonetti
 
Úvod do Ruby on Rails
Úvod do Ruby on RailsÚvod do Ruby on Rails
Úvod do Ruby on RailsKarel Minarik
 
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)Shanda innovation institute
 
Better Framework Better Life
Better Framework Better LifeBetter Framework Better Life
Better Framework Better Lifejeffz
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails PresentationPaul Pajo
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Railsiradarji
 
Ruby application based on http
Ruby application based on httpRuby application based on http
Ruby application based on httpRichard Huang
 
Ruby on Rails Web Development Best Practices and Tips.pdf
Ruby on Rails Web Development Best Practices and Tips.pdfRuby on Rails Web Development Best Practices and Tips.pdf
Ruby on Rails Web Development Best Practices and Tips.pdflubnayasminsebl
 

Semelhante a Design Pattern From Java To Ruby (20)

Contributing To Rails By Plugin Gem
Contributing To Rails By Plugin GemContributing To Rails By Plugin Gem
Contributing To Rails By Plugin Gem
 
Rails bestpractices.com
Rails bestpractices.comRails bestpractices.com
Rails bestpractices.com
 
Static Code Analysis For Ruby
Static Code Analysis For RubyStatic Code Analysis For Ruby
Static Code Analysis For Ruby
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
 
Ruby Kaigi09 China Rubyupdate20090718
Ruby Kaigi09 China Rubyupdate20090718Ruby Kaigi09 China Rubyupdate20090718
Ruby Kaigi09 China Rubyupdate20090718
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Css sprite best practices
Css sprite best practicesCss sprite best practices
Css sprite best practices
 
Web application intro + a bit of ruby (revised)
Web application intro + a bit of ruby (revised)Web application intro + a bit of ruby (revised)
Web application intro + a bit of ruby (revised)
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
 
Úvod do Ruby on Rails
Úvod do Ruby on RailsÚvod do Ruby on Rails
Úvod do Ruby on Rails
 
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
 
Better Framework Better Life
Better Framework Better LifeBetter Framework Better Life
Better Framework Better Life
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Ruby application based on http
Ruby application based on httpRuby application based on http
Ruby application based on http
 
Ruby on Rails Web Development Best Practices and Tips.pdf
Ruby on Rails Web Development Best Practices and Tips.pdfRuby on Rails Web Development Best Practices and Tips.pdf
Ruby on Rails Web Development Best Practices and Tips.pdf
 
Real World Technologies
Real World TechnologiesReal World Technologies
Real World Technologies
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
 

Último

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Último (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Design Pattern From Java To Ruby

  • 1. Design Pattern -- from Java to Ruby Richard Ekohe www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 2. Why use Design Pattern  For reuse www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 3. Why use Design Pattern  For communication www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 4. Why use Design Pattern Define a Node interface, all of leaf nodes and internal nodes should implements the interface, internal nodes has a list that  For communication 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. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 5. Why use Design Pattern Define a Node interface, all of leaf nodes and internal nodes should implements the interface, internal nodes has a list that  For communication 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. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 6. Why use Design Pattern Define a Node interface, all of leaf nodes and internal nodes should implements the interface, internal nodes has a list that  For communication 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. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 7. Why use Design Pattern  For communication www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 8. Why use Design Pattern  For communication Composite Pattern www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 9. Why use Design Pattern  For communication Composite Pattern www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 10. Difference from java to ruby www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 11. Difference from java to ruby  Classes are Objects www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 12. Difference from java to ruby  Classes are Objects  Messages, not function call www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 13. Difference from java to ruby  Classes are Objects  Messages, not function call  Duck Typing www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 14. Difference from java to ruby  Classes are Objects  Messages, not function call  Duck Typing  Mixin www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 15. Singleton Pattern  ensures a class has only one instance, and provides a global point of access to it www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 16. Singleton Pattern www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 17. Singleton Pattern You are my only wife www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 18. Singleton Pattern You are my You are my only husband only wife www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 19. Singleton Pattern -- java www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 20. Singleton Pattern -- java  Eager loading www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 21. Singleton Pattern -- java  Eager loading  Lazy loading www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 22. Singleton Pattern -- ruby  Ruby built-in singleton www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 23. Singleton Pattern -- ruby  Ruby built-in singleton www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 24. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 25. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 26. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 27. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 28. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 29. Ruby for Design Pattern  Built-in (Singleton) www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 30. 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.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 31. Observer Pattern Subscribe Temperature Detector www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 32. Observer Pattern Subscribe Temprature Temperature changed Detector www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 33. Observer Pattern Notify Notify Subscribe Temprature Temperature changed Detector www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 34. Observer Pattern -- java  Define interface by yourself www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 35. Observer Pattern -- java  Define interface by yourself www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 36. Observer Pattern -- java  Define interface by yourself www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 37. Observer Pattern -- java  Define interface by yourself www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 38. Observer Pattern -- java  Define interface by yourself www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 39. Observer Pattern -- java  Define interface by yourself www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 40. Observer Pattern -- java  Java built-in observer www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 41. Observer Pattern -- java  Java built-in observer www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 42. Observer Pattern -- ruby  Ruby built-in observer www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 43. Observer Pattern -- ruby  Ruby built-in observer www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 44. Observer Pattern -- ruby  Ruby built-in observer www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 45. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 46. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 47. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 48. Ruby for Design Pattern  Built-in (Singleton, Observer)  Mixin www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 49. Iterator Pattern  provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 50. Iterator Pattern Count 1 2 3 10 www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 51. Iterator Pattern -- java  Java built-in Iterator and mock Iterator www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
  • 52. Iterator Pattern -- java  Java built-in Iterator and mock Iterator www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
  • 53. Iterator Pattern -- java  Java built-in Iterator and mock Iterator www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
  • 54. Iterator Pattern -- java  Java built-in Iterator and mock Iterator www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Merb - Offshore Web Development
  • 55. Iterator Pattern -- ruby  Nothing, just .each www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 56. Iterator Pattern -- ruby  Nothing, just .each www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 57. Iterator Pattern -- ruby  Nothing, just .each www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 58. Ruby for Design Pattern  Built-in (Singleton, Observer, Iterator)  Mixin www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 59. Simple Factory Pattern  returns an instance of one of several possible classes, depending on the data provided to it. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 60. Simple Factory Pattern www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 61. Simple Factory Pattern -- java  Compare with String, a lot of if/else www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 62. Simple Factory Pattern -- java  Compare with String, a lot of if/else www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 63. Simple Factory Pattern -- java  Compare with String, a lot of if/else www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 64. Simple Factory Pattern -- java  Compare with String, a lot of if/else www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 65. Simple Factory Pattern -- java  Compare with String, a lot of if/else www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 66. Simple Factory Pattern -- java  Compare with String, a lot of if/else www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 67. Simple Factory Pattern -- ruby  Classes are Objects www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 68. Simple Factory Pattern -- ruby  Classes are Objects www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 69. Simple Factory Pattern -- ruby  Classes are Objects www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 70. Simple Factory Pattern -- ruby  Classes are Objects www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 71. Ruby for Design Pattern  Built-in (Singleton, Observer, Iterator)‫‏‬  Mixin  Classes are Objects www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 72. Command Pattern  encapsulates a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations. www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 73. Command Pattern www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 74. Command Pattern -- java www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 75. Command Pattern -- java www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 76. Command Pattern -- java www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 77. Command Pattern -- java www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 78. Command Pattern -- java www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 79. Command Pattern -- ruby  Proc www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 80. Command Pattern -- ruby  Proc www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 81. Ruby for Design Pattern  Built-in (Singleton, Observer, Iterator)‫‏‬  Mixin  Classes are Objects  Proc www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 82. Other Design Patterns Make use of ruby advantage www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 83. Ruby's Principle www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 84. Ruby's Principle  DRY – Don't Repeat Yourself www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 85. Ruby's Principle  DRY – Don't Repeat Yourself  Convention Over Configuration www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 86. 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.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development
  • 87. Q&A happy to discuss and fix my mistakes www.ekohe.com Web Development & Graphic Design China Ruby on Rails Development - Rails Consulting - Rails Services - Merb - Offshore Web Development