結城浩『Java言語で学ぶデザインパターン入門』(SB Creative)読んでみた
こんにちは、ふぎとです。
今回は結城浩さんの本で、デザインパターンを学んでみ
ました。
「デザインパターン」とは
この本を手に取ったきっかけは、情報系の友人からの薦
めがあったからでした。「実務で絶対に役に立つから」
という太鼓判を鵜呑みに、おっかなびっくり手にとった
次第です。
まず浮かんだのは、「デザインパターンってなに?」と
いうこと。これは本書冒頭に説明がありました。
"プログラミングを行っていると、以前と同じことを繰
り返しているなあ、と気づくときがあります。経験が
増すにつれ、そのような「パターン」(….)を次の開発
に当てはめていくことができるようになります。
Erich Gamma, Richard Helm, Ralph Johnson, John
Vlissidesの4人が、そのような開発者の「経験」や
「内的な蓄積」としてのパターンを
「デザインパターン」
という形に整理しました。”(「はじめに」より)
要するに、デザインパターンとは「先人の知恵」のよう
なもの。また、開発者同士の「共通言語」のようなもの、
だということです。因みに、考案した4人はthe Gang of
Four(GoF)と呼ばれているらしいです。つよそう。
本書の章立て
本書はそのGoFが定めた23個のデザインパターンをひとつ
ずつ、Javaプログラムで実例を示しながら紹介していま
す。章立ては以下の通り。
1. Iterator 1つ1つ数え上げる
2. Adapter 一皮かぶせて再利用
3. Template Method 具体的な処理をサブクラスにまかせる
4. Factory Method インスタンス生成をサブクラスにまかせる
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 文法規則をクラスで表現する
自分が取り組んだこと
・サンプルとして掲載されたプログラムを自分で書き写
し、実行した
→→23のデザインパターンそれぞれについて、期待通り
に動かすことができた
・どのクラスがどんな役割をになっているのか、解説を
読んで理解に努めた
今後やりたいこと
・やり残した、章末の練習問題を解き切る
・Javaのプログラムが動く仕組みについて勉強する
最後にひとこと
もし僕の記事に対しての補足や、「今後やりたいこと」
に対するオススメ本などありましたら、ぜひコメントで
いただけると嬉しいです!
…
では今日はこの辺で。ふぎとでした。
Author And Source
この問題について(結城浩『Java言語で学ぶデザインパターン入門』(SB Creative)読んでみた), 我々は、より多くの情報をここで見つけました https://qiita.com/FugitHora812/items/6da8cc3eea6d1983f0da著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .