私は現在、コードをリファクタリングしようとしていますが、その実装は拡張機能より優先されています。現在、シーンにオブジェクトを追加する関数を作成しようとしています。複数のリストに追加するためのJava "instanceof"
public void add(Object o) {
if(o instanceof Updatable)
updatables.add((Updatable) o);
if(o instanceof Removable)
removables.add((Removable) o);
if(o instanceof Renderable)
renderables.add((Renderable) o);
if(o instanceof Collidable)
collidables.add((Collidable) o);
}
:優れた各オブジェクトが何であるかを定義するためには、などの更新、レンダリングのためのリスト、
private List<Updatable> updatables;
private List<Removable> removables;
private List<Renderable> renderables;
private List<Collidable> collidables;
私はそうのような私のシーンクラスに機能を作りたいなど、複数のリストがあります
同様に私は同様の削除機能を作成します。私はinstanceofの落とし穴について聞いたことがあるので、これは悪いコーディングの練習であるかどうかです.2番目は、これを回避する方法がありますか、インスタンスを簡単に追加できるようにコードを再構築していますか?私はすべてのリストにインスタンスを追加する必要はなく、いつどのインスタンスに属するのかを定義することを好みます。
これに関する同様の質問がたくさんあります。 [たとえば](https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=site:stackoverflow.com+java+instanceof+code+smell) –