したがって、私は現実の世界(学術プロジェクト以外)でのプログラミングにかなり慣れていinstanceof
ないため、特定のオブジェクトがどのクラスであるかを判断するために使用することは悪いことだと多くの投稿に出くわしました。
私の状況では、3つのクラスがあります。1つは基本製品クラスで、もう1つはそれを拡張し、もう1つはそれを拡張します。これらはすべてデータベースの同じテーブルに格納されており、データを取得するためにそれぞれのメソッドを使用する必要があるコードがいくつかあります。
この方法で回避するためのベストプラクティスは何ですか?ポリモーフィズムについていくつか読んだことがありますが、私が抱えている問題を解決する例は見つかりません。通常、これらはすべて、異なるオブジェクトから異なるものをプルする必要があるため機能しないメソッドをオーバーライドします。
これを行うためのより良い方法はありinstanceof
ますか、それともオブジェクトに固有のフィールドを取得するための使用または何らかの反射で立ち往生していますか?
getSpecifics()
それぞれに異なる方法で実装され、それぞれがクラスに固有のデータを返すのですか?
instanceof
が間違っているということではありません。通常、オブジェクトのクラスを見つけようとすることが問題です。常に間違っているとは限りませんが、おそらくあなたの場合は間違っています。多分あなたが達成しようとしていることを私たちに教えてくれれば、多態性を使った解決策を提案できます。