Open1
依存のコントロール方法を完全に解説する

依存とは
- 依存とはなにか - ゲームオーバーダイアログとキャラクターのHP
- ダイアログクラスによるポーリング vs キャラクタークラスによる命令 (関数呼び出し)
- ダイアログクラスがコールバック関数かオブザーバー系の抽象クラスをキャラクタークラスに登録する
- 依存関係はポーリングと同じだが、ポーリング特有の問題が一部解消できる
- 状態が一瞬で変化したときに見落とす問題
- 固定的な処理負荷がかかる問題
- 可読性が落ちる、という見方はある
- 依存関係はポーリングと同じだが、ポーリング特有の問題が一部解消できる
- 依存の方向の決め方
- 互いに依存するのは避ける
- 直感的には
- ゲームキャラクターのHPが0になったとき、キャラクターがダイアログシステムを呼び出す
- 依存の方向はキャラクタークラス→ダイアログシステムクラス
- クリーンアーキテクチャ的には
- ゲームキャラクターのふるまいのほうがよりコアドメインに近い
- ダイアログシステムがキャラクターのHPが0になったことを何らかの方法で確認し、ダイアログを出す
- 依存の方向はダイアログシステムクラス→キャラクタークラス
- ダイアログの「復活ボタン」を押したときにどう実装するべきか
- 直感的な方向 ( キャラクター→ダイアログシステム)
- ダイアログシステムが押したボタンを取得する関数を持つ。(または、ボタン入力をコールバック)
- キャラクタークラスがダイアログクラスの情報を読み取る設計だと、依存が循環するため悪手気味
- 直感的な方向 ( キャラクター→ダイアログシステム)