練習使用 design pattern

* 情境
* 問題
* 可以解決的方法
* 有何優點與缺點