Upgrade to Pro — share decks privately, control downloads, hide ads and more …

デザインパターンを掘り下げよう ~Singleton Pattern 編~

mashirou1234
March 29, 2024
500

デザインパターンを掘り下げよう ~Singleton Pattern 編~

mashirou1234

March 29, 2024
Tweet

More Decks by mashirou1234

Transcript

  1. デザインパターンの話 GoFのデザインパターン本? ◦ Gang of Fourの略 ◦ エーリヒ・ガンマ ◦ リチャード・ヘルム

    ◦ ラルフ・ジョンソン ◦ ジョン・ブリシディース https://www.sbcr.jp/product/4797311126/
  2. Singleton Patternの理解 1. 基本的な考えとして「他の言語に置き換えたらどうなる?」が原点 ◦ 柔らかく表現するなら「言語という文体が変わっても結果は同じになるよね」 2. 置き換えた結果、文法の違いはあれど本質は同一にすることが可能 3. ただし、本質を同一することができた代わりに弱点も生まれた

    ◦ Singletonの場合、グローバル変数を好き放題にできてしまう問題 DIして解決するやり方は、Singletonから生まれた課題の解決手法としてまさに適切といえる 問題があるように見せかけているが、パターンというものはみんなで最も近しいものを 考えることが主題のため、このような問題が残されたままになるのは自然と考えます 問題を解決する = 仕組みを作る
  3. Singleton Patternの理解 1. 基本的な考えとして「他の言語に置き換えたらどうなる?」が原点 ◦ 柔らかく表現するなら「言語という文体が変わっても結果は同じになるよね」 2. 置き換えた結果、文法の違いはあれど本質は同一にすることが可能 3. ただし、本質を同一することができた代わりに弱点も生まれた

    ◦ Singletonの場合、グローバル変数を好き放題にできてしまう問題 DIして解決するやり方は、Singletonから生まれた課題の解決手法としてまさに適切といえる 問題があるように見せかけているが、パターンというものはみんなで最も近しいものを 考えることが主題のため、このような問題が残されたままになるのは自然と考えます 問題を解決する = 仕組みを作る
  4. そもそもの話 勘違い的な話 - 1 ◦ デザインパターン、あるいはオブジェクト指向に強烈な幻想が生まれている ◦ これまでの紹介でもある通り、置き換えができるという紹介をしましたが、 それらは置き換えができないかを模索した結果であることを再度認識したいところ ◦

    だけど実際に行われているのはすでにデザイン済パターンに 更なる重複デザインを行なっていることが多い(デザイン版: 車輪の再発明) ◦ e.g. SingletonパターンにSingletonパターンを入れようと変なことをしようとしている お仕事中の事件がありました(!?) ◦ 個人的には、この一件で自分の中にあるデザインパターンの理解と認識が崩れたことが オブジェクト指向という大きな夢物語からの脱却が始まったような記憶
  5. そもそもの話 勘違い的な話 - 2 ◦ 銀の弾丸を求めすぎ ◦ もうないのはわかっているはずなのに、人類はまだあると信じて求めてしまう ◦ 私見として、デザインパターンが現代では大部分が提唱/実現が行われており、

    今は次の段階に進む段階であって、プロダクト開発などの大きなステージへ進む タイミングに入ってきていると考えている ◦ レイヤーがどうこうというよりも、すでにデザインパターンという領域は 今の時代の言語を触っていればどういう形であれすでに履修しているもの ◦ みなさんはすでに仕事で使えるデザインパターンの概略は、もうマスターしてます!
  6. まとめ 1. デザインパターンは高水準言語を触れていれば、原則触れています ◦ 意識していないだけで確実に 2. デザインパターンよりも先に方々に説明しやすい資料作りの方が大事 ◦ 結局最後は人間とのコミュニケーションなので、やっぱり文章や説明力があるほうが 強い

    3. でも、仕組みを知っていればより奥深い理解と説明力は上がると思います ◦ 知る必要はないわけはなく、フレーバーとして覚えておくことで今後のお役立ちにな ります ◦ みなさんゲームのフレーバーテキストを見たら考察することありませんか? それです
  7. Next...? ◦ DI ◦ SOLID原則 ◦ アーキテクチャー ◦ MVC ◦

    IDDD(ヘキサゴナルアーキテクチャー) ◦ クリーンアーキテクチャー and more...
  8. 自己紹介 ◦ X Name: 柚口ましろう ◦ X ID: yu_mashirou ◦

    本名: 代口勇真 ◦ 株式会社 Gladiolus LAB 秋葉原にある会社でいろんなことをやっています SES 受託開発 自社開発(今頑張ってる!)
  9. EOL