継承は、アプリケーションのパフォーマンスに影響を与えることができますか?

ctorres:

アプリケーションの性能をすることができますより多くのスーパークラスを使用することによって改善することができたのだろうか。私の質問はKotlinについてですが、私はその答えは、Javaで同じになりますと仮定します。


:あなたがこの継承スキーマ(右クラスは、彼の左のクラスのサブクラスである)があるとしましょう
A <B <C <D <E <F <G <...そしてそうZ.までには

あなたはすべてのサブクラスで定義されているすべてのものを必要としないと言ってますが、属性のみとAクラスの機能。あいまいな理由から、あなたのコードは、唯一のZクラスを使用しています。

私の質問は非常に簡単です:あなたが唯一の代わりにZクラスのクラスを使用するようにコードを変更した場合、コードはよりパフォーマンスになりますか?

あなたの答えのために事前にありがとうございます。

ハルク:

もし

「唯一の代わりにZクラスのクラスを使用するようにコードを変更します」

その後、些細な答えがあり、建設が含まれています。

以下の属性/フィールドを持つオブジェクトを作成して格納するメモリの面で、それが初期化するのにかかる時間の両方の観点から、より多くの属性を持つオブジェクトを作成するよりも安いです。

それ以外は、私はパフォーマンスに大きな影響を期待していません。


あなたはこれで何をしたいかのための最高の抽象化を提供する型を選択してください - それは私がここでパフォーマンスを心配しないだろう、と述べました。あなたのコードは、使用しているとサブクラスによって提供される機能のいずれかを必要としないものを特定のサブクラス気にしない場合は、より一般的なタイプを使用します。そうすれば、あなたのコードはより柔軟なまま。あなたのコードは、しかし、いくつかの点で、このような機能を必要とする場合、すなわち、あなたはさらにラインの下のキャストを導入する必要があり、あなたはあまりにも遠くに行っています。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=206818&siteId=1