RubyDubee

  • Archive
  • RSS

Observer and Ducks

If you have implemented Observer pattern in any statically typed language, you know that you need an explicit Observer class/interface for the pattern, which will be extended by the actual concrete classes and some ‘update’ kind of method should be overridden in order to propagate the observations.Basically taking advantage of inheritance.

Here comes a duck type language like Ruby, as there are no types to be declared you can pass in any object to the observable and let it call the update method, you don’t need any parent Observer class. If the method is available in the object it will be called and the observation will be accomplished.

Now we can extend this more, The observable object will call any method it wants and ruby’s method_missing will take care of the methods that the individual observers don’t want to define. Cool eh? Check out this simple example:

So I quote this again “If it walks like a duck and quacks like a duck, it must be a duck.”

    • #ruby
    • #design patterns
  • 6 months ago
  • 1
  • Comments
  • Permalink
  • Share
    Tweet

1 Notes/ Hide

  1. hackedy liked this
  2. rubydubee posted this

Recent comments

Blog comments powered by Disqus
← Previous • Next →

About

I am Pradyumna and You can read my Rubyish Resume (once it is done) to know more about me!

Pages

  • My Rubyish Resume

Twitter

loading tweets…

I Dig These Posts

See more →
  • RSS
  • Random
  • Archive
  • Mobile

Effector Theme by Carlo Franco.

Powered by Tumblr