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
  • 1 year ago
  • 1
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

1 Notes/ Hide

  1. hackedy likes this
  2. rubydubee posted this

Recent comments

Blog comments powered by Disqus
← Previous • Next →

About

I am a programmer and I like to build new stuff, usually in Java or Ruby. My interest lies in Web applications, Databases, APIs and things like that! I have a B.Tech degree in Computer Science.
In my spare time, I read(anything ranging from tech-books to mythology), listen to music or play Table Tennis. (And I walk a lot)!

Twitter

loading tweets…

  • RSS
  • Random
  • Archive
  • Mobile
Effector Theme by Pixel Union