How often do we look inside a Gem to see what’s inside it? Well – there is SO MUCH to learn from the code. Sanjiv digs inside the Mina gem and unearths the various design patterns that it uses.
An excellent article for developers to learn design patterns not from the book but directly from the implementation. It’s always easy to relate to something concrete that just read about it.
Mina is popular gem for fast deployment of simple ruby on rails apps. I found these design patterns being used in mina and we can learn how to use them from these real live implementations.
- Singleton Design Pattern.
Delegation Pattern
If you are unfamiliar with Design patterns, I strongly recommend reading Gang Of Four’s Design Pattern book. You can also have a quick wiki reference.
Singleton Design Pattern
In simple terms, Singleton design pattern mean there should be single instance of class, hence mostly used to provided global state of app.
The Singleton module implements the Singleton pattern. We include this module in a class for implementing singleton pattern. Mina gem uses the singleton pattern for storing configuration options to accessed data globally. Here is the code from `lib/mina/configuration.rb`
1: require 'singleton' 2: module Mina 3: class Configuration 4: include Singleton 5: 6: module DSL 7: def self.included(base) 8: [:set, :fetch, :remove, :set?, :ensure!…
View original post 570 more words