インターフェースの基礎 ref: http://qiita.com/kaz8/items/3d51fe7b99d3df2e0906