これはおそらく非常に新しい質問ですが、Layerというクラスの配列を持つSceneというクラスがあります。各レイヤーはインターフェースレイヤーやゲーム画面レイヤーのようなもので、シーンはレイヤーの更新&描画機能などを呼び出します。
私の質問は、それらのレイヤーを追加または削除するときに、 scene.addLayer(layer);である必要があるかどうかです。 または layer.addToScene(scene); ?
どちらも私には問題ないように見えますが、OOPにルールはありますか?
これはおそらく非常に新しい質問ですが、Layerというクラスの配列を持つSceneというクラスがあります。各レイヤーはインターフェースレイヤーやゲーム画面レイヤーのようなもので、シーンはレイヤーの更新&描画機能などを呼び出します。
私の質問は、それらのレイヤーを追加または削除するときに、 scene.addLayer(layer);である必要があるかどうかです。 または layer.addToScene(scene); ?
どちらも私には問題ないように見えますが、OOPにルールはありますか?
@Javaが素敵な答えを書いたと言わざるを得ません、そして私はあなたに別の見方を提供します。レイヤーを所有するシーンが削除されたときにレイヤーがガベージコレクション(削除)される場合はScene.AddLayer(Layer)、レイヤーに対する所有権のセマンティクスがシーンに与えられるため、これを使用します。一方、それらのレイヤーが異なるシーンで共有される場合Layer.AddToScene(Scene)は、逆の理由で使用します。もちろん、これは単なる個人的なスタイルであり、ソフトウェアエンジニアリングの原則に基づくものではありません。
これは問題ではありませんが、代わりにあなたが意見を求めていると思います...
どちらかを思いとどまらせるOOPルールを私は知りませんが、scene.addLayer(layer)それが最も理にかなっているので、私は最善だと思います。あなたがコインを入れる瓶を持っているとしましょう。あなたは言いcoin.addToJarますか?いいえ、意味がありません!コインは瓶に入れません!あなたはコインを受け入れるように瓶に言わなければなりません。Java GUIを使用しても、がありますContainer.add(Component)。
(PSこの質問は必ずしもJavaタグに含まれている必要はなく、任意のオブジェクト指向言語に適用できます。)