<復習>Java言語で学ぶデザインパターン入門
Java言語の文法を一通り勉強し、次に読む本としてデザインパターンのおすすめ書籍を調べたら真っ先に本書が上がってきました。
正直に言って、Javaの文法を一通り勉強した程度の実力では、半分くらいしか理解できませんでした。
読むのもとても大変で章末問題を飛ばしても読み終わるのに30時間ほど掛かりました。
なんとか最後まで読み切りましたが、もう少し経験を増やしてから再度読み直して理解できなかった部分を理解したいと思っています。(多分読まないけど)
読者のレベルもある程度は必要で、コードの解説がメインの話なのでコードを理解する能力は必要です。
コード自体はそこまで難しくないので時間を掛ければ理解できます。
ただ、コードを読んだだけで終わりになってしまった感はあります。
私もまだピンと来ていないので、実際に業務で使って理解を深めていくしかないと思っています。
とりあえず、本書を読んでざっくりの理解です。
具体的にどこが理解できていなかったと言うと、そのパターンがなんのために利用されるのか、そのパターンにはなんの意味があるのか、の部分が理解できませんでした。
なんとなくは分かるのですが、実務に落とし込んで考えることができなかったです。
なので、実際に業務でぶち当たることしかないなぁと言った感じです。
雰囲気はつかめたし、業務上のコードや他の本を読んでいてもちょいちょい出てくるワードがあったので読んでおいて良かったとは思っています。
ただ、内容が難しく手をつけるのは少し早かっただけです。
Java言語で学ぶデザインパターン入門
そもそもデザインパターンとはなんでしょうか。
本書では「部品がどのように組み立てられているか、個々の部品がどのように関連して大きな機能を果たすのかを表現したもの」と言われています。
the Gyang of Four
本書はthe Gyang of Four、または GoF と呼ばれている23種類のデザインパターンを一つ一つ取り上げてわかりやすく説明してくれます。
第1章 Iterator パターン
複数の要素が集まっている中から要素を一つ一つ取り出していくパターンです。
第2章 Adapter パターン
異なるインタフェース(API)を持つクラスの間をつなげるパターンです。
第3章 Template Method パターン
スーパークラスで処理の骨組みを定め、具体的な処理をサブクラスで行うパターンです。
第4章 Factory Method パターン
スーパークラスでインスタンスの作り方の骨組みを定め、具体的な作成そのものはサブクラスで行うパターンです。
第5章 Singleton パターン
インスタンスが一つしか存在しないパターンです。
第6章 Prototype パターン
ひな型となるインスタンスをコピーしてインスタンスを作るパターンです。
第7章 Builder パターン
複雑な物を段階を踏んで組み立てていくパターンです。
第8章 Abstract Factory パターン
工場のように部品を組み合わせてインスタンス生成を行うパターンです。
第9章 Bridge パターン
2種類の拡張が混在するプログラムを機能の階層と実装の階層にわけ、その間に橋渡しを行うパターンです。
第10章 Strategy パターン
アルゴリズムをごっそり切り替えて改良しやすいようにするパターンです。
第11章 Composite パターン
容器と中身を同一視して、再帰的な構造を構築するパターンです。
第12章 Decorator パターン
飾り枠と中身を同一視して、飾り枠を何重にも重ねるパターンです。
第13章 Visitor パターン
構造を渡り歩きながら同じ操作を繰り返し適用するパターンです。
第14章 Chain of Responsibility パターン
複数の物が連なっている中の、どこかで仕事を行うと言うパターンです。
第15章 Facade パターン
複雑に絡んだクラスを個別に制御するのではなく、窓口役のクラスを一つ配置することでシステム全体の操作性をよくするパターンです。
第16章 Mediator パターン
複数のクラスが互いに相談し合うのではなく、相談役のクラスを一つ用意し、その相談役とだけやり取りすることでプログラムをシンプルにするパターンです。
第17章 Observer パターン
状態が変化するクラスとその変化を通知してもらうクラスを分けて考えるパターンです、
第18章 Memento パターン
現在の状態を保存し、必要に応じて復帰させ、アンドゥを行えるようにするパターンです。
第19章 State パターン
状態をクラスで表現し、状態に応じたswicth文を減らすパターンです。
第20章 Flyweght パターン
複数箇所で同じ物が登場するときに、それらを共有して無駄をなくすパターンです。
第21章 Proxy パターン
本当に目的の物が必要になるまでは代理人を使って処理を進めるパターンです。
第22章 Command パターン
要求や命令を形にしてクラスで表現するパターンです。
第23章 Interpreter パターン
文法規則をクラスで表現するパターンです。
GoFのデザインパターンの分類
生成に関するパターン
- Abstract Factory パターン
- Builder パターン
- Factory Method パターン
- Prototype パターン
- Singlten パターン
構造に関するパターン
- Adapter パターン
- Bridge パターン
- Composite パターン
- Decorator パターン
- Facade パターン
- Flyweght パターン
- Proxy パターン
振る舞いに関するパターン
- Chain of Responsibility パターン
- Command パターン
- Interpreter パターン
- Iterator パターン
- Mediator パターン
- Memento パターン
- Observer パターン
- State パターン
- Starategy パターン
- Template Method パターン
- Visitor パターン
おわり。