私はゲームに取り組んでいます。私は大量のリスナーを抱えています。どのようなタイプのデザインパターンがイベントを簡単にしますか?
たとえば、ゲームの言語が変更されると、LanguageManagerはlanguageChangedイベントを送信し、関心のあるすべてのgui要素が新しいテキストを取得して再描画します。これは、関心のあるすべてのgui要素がLanguageListenerクラスを実装していることを意味します。
私が自分自身でたくさん行っていることは、依存関係を注入することです。 GuiFactoryは、FontManager(TTFフォントの配列を保持する)へのポインタを持つようにフォントを設定する必要があり、GuiSkinManagerも持っているので、ゲームのスキンに基づいてImage *を取得できます。これはこれを行う正しい方法ですか?
私の主な関心事は、リスナーとそれらの膨大な量です。特にguiのために。使用しているGUIライブラリーは、ほぼ完全にリスナー駆動型です。ほとんどの場合、ActionListenersで逃げることができますが、event.getSource()== button2などの場合はまだifsをネストしています。
一般に、どのようなタイプのデザインパターンを使用して、大きなゲームプロジェクト私よりはるかに複雑ですか?
おかげで
基本的にリスナーのモデルであるObserverパターン(Ihttp://en.wikipedia.org/wiki/Observer_pattern)を認識していることを前提としています。私が理解していないのは、なぜあなたはネストされたifsを持っているのですか?確かにあなたは関心のあるオブザーバブルにオブザーバをバインドするだけです(またはリスナーが気にするものを聞きます)?つまり、Button2Handlerはbutton2だけをリッスンしますか? –