0.デザインパターン=オブジェクト指向ではない(動画の書き下ろし)
ざっくりデザインパターン
ス「解説役のスーだよ」
ミ「相槌担当のミカゼです」
ス「ざっくりデザインパターンというシリーズをやることにしたよ。UnityとC#を使って強引かつざっくりデザインパターンを説明していくというシリーズだよ」
ミ「はい」
ス「GoFの23のデザインパターンは除外するよ」
ミ「はい」
ス「除外する理由は本でもインターネット上でも色々なところで解説しているからだよ。改めて解説しても需要なさそうだからね」
ミ「はい、需要を考えるの珍しいですね」
ス「チャンネル登録者100人を目指すことにしたからね。何か目指すものがないと動画投稿のモチベがあがらないの」
ミ「タイトルの[デザインパターン=オブジェクト指向ではない]は本当なのですか?」
ス「勘違いしている人も多そうだからハッキリ言っていくよ。デザインパターンは必ずしもオブジェクト指向ではないよ。マサカリが飛
んできても気にしない方針で行くよ」
ミ「マサカリというのは怖い人が、間違っているぞ!エンジニア失格だ!と正論パンチをしてきて、対象の人に生命の灯火を無くす行為のことですね」
ス「大抵は優しい正論パンチだと信じているよ。逸れたから戻すよ。このデザインパターン=オブジェクト指向の思い込みは日本で一番初めに出版された赤い岩の本の影響だと思ってるよ。」
ミ「この本ですね」
ス「本のタイトルも[オブジェクト指向における再利用のためのデザインパターン]だからね。これはGoFの23のデザインパターンを主に解説している本だよ。デザインパターンはGoF以外にもあるし、オブジェクト指向と関係ないものもあるからね。」
ミ「そうなんですね。結局オブジェクト指向とデザインパターンって何なんですか」
ス「オブジェクト指向はふわっとしていて明確な定義が無いよ。人やプロジェクトの数だけ定義があると思っていいよ。と強く言ったけどある程度似通った意識は持っているよ。ポリモーフィズム、カプセル化、疎結合、クラス、継承、抽象化、コンポジション この辺りの単語の理解があればオブジェクト指向は理解したって言ってもいいよ。後、ファイル数は必然と多くなるよ。」
ミ「なんだかんだ覚えること多いですね」
ス「中にはクラスを使っただけでオブジェクト指向だ!って人もいるけどこれは間違い。」
ミ「デザインパターンは何者なんですか?」
ス「ソフトウェア設計において一般的な問題に対する再利用可能な解決策に名前をつけたのがデザインパターン。これも勘違いされるけどサンプルソースで示されているコード=○○パターンはこのコードが絶対!という意味ではない。同じ○○パターンでも実装方法は何通りもあるよ。」
ミ「わかったような、わからないような」
ス「ざっくり言うと、問題に対して、こんな解決方法があるよ。名前が無いから、ずんどこパターンって名付けるね。これがデザインパターン。」
ミ「分かったことにします」
ス「デザインパターンには複数のパターンがあることは説明したね。その手前にカテゴリ分けが出来るんだよ。カテゴリ分類述べていくよ。
生成に関するパターン、構造に関するパターン、振る舞いに関するパターン、
GoFの23のパターンはこの3つに含まれるよ。他の分類はも羅列するよ。に関するパターンは省略。
並行性、アーキテクチャ、リソース管理、セキュリティ、テスト等 たくさんあるんだ。正直知らないパターンの方が多い。デザインパターンは新しい技術やプラットフォームが登場するにつれて増えていくものだと思っていいよ。
」
ミ「スーさんも分からない事のほうが多いんですね」
ス「そう。だから勉強しつつ解説動画を作っていくことになるよ。次回からはパターンを紹介していくよ。」
ス「締めるよ」
ス・ミ「ご視聴ありがとうございました」
ス「またね」
ミ「貴方の1日が素晴らしきものでありますように」