『Java言語で学ぶデザインパターン入門第3版』
https://m.media-amazon.com/images/I/41xgZhdHu7L.jpg https://www.amazon.co.jp/Java%E8%A8%80%E8%AA%9E%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80%E7%AC%AC3%E7%89%88-%E7%B5%90%E5%9F%8E-%E6%B5%A9-ebook/dp/B09HK66P5X/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3&linkCode=qs&qid=1655976426&sourceid=Mozilla-search&sr=8-3
デザインパターン入門書の決定版
※この電子書籍は、「固定レイアウト型」で配信されております。説明文の最後の「固定レイアウト型に関する注意事項」を必ずお読みください。
■『Java言語で学ぶデザインパターン入門 第3版』について
本書は、オブジェクト指向プログラミングにおいて古典的な23個のデザインパターンを、Java言語で書かれた短いサンプルプログラムとUMLを使い、オブジェクト指向プログラミングの初心者にもわかりやすく解説した技術書です。
2001年に初版が刊行されて以来、「最もわかりやすいデザインパターン解説書」「オブジェクト指向プログラミングとデザインパターンを学ぶ定番の一冊」と数多くの読者、技術者から支持されてきました。2004年には増補改訂版が刊行され、2020年には第31刷まで達するという人気のロングセラーとなっています。
しかし、Java言語は大きく進化しています。そこで第3版となる本書では、書籍の基本的構造と解説のわかりやすさはそのままに、扱っているサンプルプログラムを現代のJava言語に合わせて一新し、オブジェクト指向プログラミングとデザインパターンを身につけたいと思う技術者が、なおいっそう学びやすいように改訂を行いました。
●第3版改訂のポイント
・サンプルプログラムを現代のJava言語でリニューアルする(ジェネリック型、ラムダ式、拡張for、enum型、アノテーション、新たなクラスライブラリの使用など)。
・わかりやすさはそのままに、取り扱う例や解説を現代の観点から修正する(依存性の注入、セキュリティに関する記述の追加など)。
・古典的なデザインパターン23個はそのまま扱い、対応するサンプルプログラムもシンプルに保つ。
●目次
はじめに
UMLについて
デザインパターンを学ぶ前に
●第1部 デザインパターンに慣れる
第1章 Iterator 処理を繰り返す
第2章 Adapter 一皮かぶせて再利用
●第2部 サブクラスにまかせる
第3章 Template Method 具体的な処理をサブクラスにまかせる
第4章 Factory Method インスタンス作成をサブクラスにまかせる
●第3部 インスタンスを作る
第5章 Singleton たった1つのインスタンス
第6章 Prototype コピーしてインスタンスを作る
第7章 Builder 複雑なインスタンスを組み立てる
第8章 Abstract Factory 関連する部品を組み合わせて製品を作る
●第4部 分けて考える
第9章 Bridge 機能の階層と実装の階層を分ける
第10章 Strategy アルゴリズムをごっそり切り替える
●第5部 同一視
第11章 Composite 容器の中身の同一視
第12章 Decorator 飾り枠と中身の同一視
●第6部 構造を渡り歩く
第13章 Visitor 構造を渡り歩きながら仕事をする
第14章 Chain of Responsibility 責任のたらい回し
●第7部 シンプルにする
第15章 Facade シンプルな窓口
第16章 Mediator 相手は相談役一人だけ
●第8部 状態を管理する
第17章 Observer 状態の変化を通知する
第18章 Memento 状態を保存する
第19章 State 状態をクラスとして表現する
●第9部 無駄をなくす
第20章 Flyweight 同じものを共用して無駄をなくす
第21章 Proxy 必要になってから作る
●第10部 クラスで表現する
第22章 Command 命令をクラスにする
第23章 Interpreter 文法規制をクラスで表現する
●付録
付録A 練習問題の解答
付録B GoFによるデザインパターンの分類
付録C デザインパターンQ&A
付録D 参考文献
固定レイアウト型に関する注意事項(必ずお読みください)
この電子書籍は、全ページ画像の「固定レイアウト型」で配信されております。以下の点にご注意し、購入前にプレビュー表示をご確認の上、ご購入ください。
■使用できない機能
・文字拡大(ピンチイン・ピンチアウトは可能ですが、画面におさまらない場合は画面をスワイプ)/文字のコピー/マーク/ハイライト/文字列検索/辞書の参照/Web検索/引用
■推奨環境
・タブレットなど大きいディスプレイを備えた端末
・Wi-Fiネットワーク経由でのダウンロード(Kindle端末の場合)
rashita.icon2021/11/15購入。
https://gyazo.com/5aa76710cb75e7f97a528b5bd97fbc17
Javaはたぶん使わないけども、オブジェクト指向とデザインパターンの学習のために購入。ちびちび読んでいく予定。
「はじめに」
これは、コンピュータだけに当てはまることではありません。たくさんの開発者が共同して作業するときには、人間のインターフェースが重要になるのです。そして、そのインターフェースの基となるのは「言葉」です。特に、コードの詳細を離れて、プログラムの大きな構造について議論するときには、言葉や図式が重要になってきます。
UML
サブクラスは必ずスーパークラスを知っています。
2021/11/17
第一章「Iterator──処理を繰り返す」
iterator(反復子)
JavaScriptのMapを思い出した。
繰り返し処理を行うインスタンスを別に作る、というのが新鮮な感覚。これがオブジェクト指向なのだろう。
2021/11/18
implemnts/インターフェースがよくわかっていないのでコードが読みづらい
2021/11/20
第二章「adapter──一皮かぶせて再利用」
継承と委譲を使った二つのバージョンの解説。
継承では、bannerを継承し、printをインターフェースとして実装する。
委譲では、printを継承するのでbannerの継承はできない分、bannnerのインスタンスを作り、そのメソッドを呼ぶメソッドを実装することで機能を丸投げする。
2021/11/25
第三章 Template Method 具体的な処理をサブクラスにまかせる」
例を読んでいて、いかにもオブジェクト指向っぽいな、と感じた。スーパークラスがおおまかなロジックを組み立てておき、その実装はサブクラスに委譲する、という感じか。
2021/12/1
第5章「Singleton」。インスタンスを一つしか作らないためのパターン。規模が小さい話なので、これはおおむね理解できたと思う。
“はっきりと言葉で表現できるノウハウは、プログラマの頭の中に隠しておくべきものではなく、コードとして表現しておくべきものなのです“
分割して統治せよ
divide and conquer
Intrinsic
Extrinsic
BNF
Terminal expression