# ちょうぜつ本_読書py[12] みんなのメモ ###### tags: `ちょうぜつ本` - このメモはWebに公開されています(HackMDチーム) - リンクを知っている人は見られます - HackMDにログインして編集できます ## ちょうぜつ本 - [ちょうぜつソフトウェア設計入門 ――PHPで理解するオブジェクト指向の活用](https://gihyo.jp/book/2022/978-4-297-13234-7) - [サポートページ](https://gihyo.jp/book/2022/978-4-297-13234-7/support)(正誤表) ## お願い事項 (1) 今を楽しもう(録画はしないでね) (2) 本メモは**インターネット上に公開されています。** そのため、文章の丸写し(!=引用)や、書籍を読まずに内容が詳細に分かる表現は行わないようにしましょう。 参考記事: - [Qiita ヘルプ 著作物を引用する際の注意点 ](https://help.qiita.com/ja/articles/about-copylight) - [Qiitaで記事を公開するときに気を付けるべきマナーについて 〜無断でネットや書籍の内容を丸写しするのはやめよう〜 ](https://qiita.com/jnchito/items/215c2d51599eb29adabc) - [文化庁 著作物が自由に使える場合 ](https://www.bunka.go.jp/seisaku/chosakuken/seidokaisetsu/gaiyo/chosakubutsu_jiyu.html) ## このメモについて このメモは ちょうぜつ本_読書py[12] のメモです https://pythonista-books.connpass.com/event/308288/ 読む範囲:8.9前半 ## 読書会の流れ * 20:00〜20:30 **自由参加**のもくもく会(個人作業) - 事前に読む時間がとれなかった方はここで読んじゃいましょう(ざっとで大丈夫です) - 合わせて、この**HackMD**に話したいことを各自書いてください - ログインすれば書ける設定にしています - ここがわからん、ここはわかった お気軽に書き込んでみてください - HackMDの書き込みに投票し、みんなが気になるところをわいわい読み解いていきます * 20:30〜22:00 読書会本編(みんなでわいわい) * Discordでスライド共有して別途案内します * 20:30開始の本編では、「わたしこれ気になる!」 という話題に `:+1:` と書いて投票します。 * :+1: する上限はありません。 気になる話題に全部 :+1: しちゃいましょう。 ただし1つの話題には1個だけ:+1:でお願いします * 票数が多い話題から話していきます。 ## 以下、もくもく会ワークゾーン 以下は各節で「これってどういうことなんだろう」「ここからこういう気付きがあった」などを書き出すゾーンです。 ### 第8章 デザインパターン _章よりも細かい目次は公開されていないようですが、読書会運営都合により見出し番号だけ記載しています_ 章全体への書き出しはこちらに - - - ### 8-9 Strategy - ふむ、わかるようなわからないような - Template MethodとStrategyパターンとの違いを書いてくれていた - 2回目を読んで徐々に理解 - どちらもinterface(abstract)を継承するのは一緒だけど、そこから呼び出すexpressionはそこにあるかないか :+1: - Strategyの方が層が1枚多いので、柔軟っぽいというのはわかった - Template MethodとStrategy、選択肢を持っている状態はとてもよいと思う(過去にTemplate Methodしか知らなくてゴリ押して数々の罪を犯した身):+1: - 代入してバリエーションを持たせられるの、いいと思う - 継承より委譲の一例かな - Template Methodはバリエーションをクラスとして定義する必要がある - それに対してStrategyはバリエーションを実行時に決められる - A,A',A''というバリエーションとB,B',B''というバリエーションがあるとき - Template Methodでやったら全部の組み合わせの定義がいる(組み合わせ爆発) - Strategyは実行時に決めればいい - (この例はBridge的なニーズでもある) State - State、頭いい - SpeedMeterStateのnextStateに委ねる - 実行結果を見るとわかりやすい - とてもざっくりした感想としては、オブジェクト指向っぽい挙動を実現するんだなと - あとは例を踏まえた上で、Stateという名前なのがちょっと理解進んだ :+1: - ちょうぜつ本を通して、interfaceとabstract classは使い分けているそうです - https://www.youtube.com/live/2JGgENjh36Q?si=DXSCzetEx8uR3IhM&t=4294 - サブカテゴリなのか、「〜とみなして使える」のか:+1: :+1: - ここでabstract classなのは完全分類(サブカテゴリ) - Enumの個々の値がメソッドを持てるのすごい - Pythonは標準ライブラリのenumはできないと思う - Enumのメソッドとした例(分岐がある) https://github.com/ftnext/transcendent-book-py/blob/50cf416279a5336d3e4613552b19457bbe225ff5/chapter8/state_example.py:+1: - 調べたらサードパーティライブラリがあるかも - tagged unionという概念らしい(TypeScriptの例見つかる) - なるほどなー https://docs.pydantic.dev/2.0/usage/types/unions/#discriminated-unions-aka-tagged-unions
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up