同じ型を持つオブジェクトの実装を変えられるようにしたい ref: http://qiita.com/myuon_myon/items/38dc54565a37597ecf7e