1. awakia

    No comment

    awakia
Changes in body
Source | HTML | Preview
@@ -1,78 +1,78 @@
## 概要
設計力に関しては経験によるところが大きいので、実践+コードレビューでまかなえるところが大きいが、ある程度網羅的でやった感の出るものとしてデザインパターンを使って学習する。
- [増補改訂版Java言語で学ぶデザインパターン入門](http://www.amazon.co.jp/dp/4797327030)を利用
- デザインパターン自体は、C++/Java用だったりして古いので、そのパターンが必要な背景を元に、Ruby(/ObjectiveC)で書き直してそれを使うべきか自分たちで再評価する。
- またRuby, Railsその他有名なライブラリでそのパターンが使われている部分を探す。
実際に本を読んだりネット上を調べる際の、具体的なチェックポイントとしては、以下の5つを用いる。
1. どういう時に使うか
2. メリット (+ デメリット)
3. そのパターンを使わないとどうなるか
4. Rubyではどう書くか(同じものがある/似たものがある/必要ない)
5. Ruby/Rails/Gemで実際に使われている場面
## 実践
学習するたびに、以下のJava言語で学ぶデザインパターン入門の目次にリンクを足していく。
やる順番としては基本的には本の掲載順にやる予定。
>
デザインパターンに慣れる
>
- - 第1章 Iterator ― 1つ1つ数え上げる]
+ - 第1章 [Iterator ― 1つ1つ数え上げる](http://qiita.com/awakia/items/b1d1f1bf364fc16c99da)
- 第2章 Adapter ― 一皮かぶせて再利用
>
サブクラスにまかせる
>
- 第3章 Template Method ― 具体的な処理をサブクラスにまかせる
- 第4章 FactoryMethod ― インスタンス作成をサブクラスにまかせる
>
インスタンスを作る
>
- 第5章 Singleton ― たった1つのインスタンス
- 第6章 Prototype ― コピーしてインスタンスを作る
- 第7章 Builder ― 複雑なインスタンスを組み立てる
- 第8章 Abstract Factory ― 関連する部品を組み合わせて製品を作る
>
分けて考える
>
- 第9章 Bridge ― 機能の階層と実装の階層を分ける
- 第10章 Strategy ― アルゴリズムをごっそり切り替える
>
同一視
>
- 第11章 Composite ― 容器と中身の同一視
- 第12章 Decorator-飾り枠と中身の同一視
>
構造を渡り歩く
>
- 第13章 Visitor ― 構造を渡り歩きながら仕事をする
- 第14章 Chain of Responsibility ― 責任のたらい回し
>
シンプルにする
>
- 第15章 Facade ― シンプルな窓口
- 第16章 Mediator ― 相手は相談役1人だけ
>
状態を管理する
>
- 第17章 Observer ― 状態の変化を通知する
- 第18章 Memento ― 状態を保存する
- 第19章 State ― 状態をクラスとして表現する
>
無駄をなくす
>
- 第20章 Flyweight ― 同じものを共有して無駄をなくす
- 第21章 Proxy ― 必要になってから作る
>
クラスで表現する
>
- 第22章 Command ― 命令をクラスにする
- 第23章 Interpreter ― 文法規則をクラスで表現する