1. ホーム
  2. java

[解決済み] なぜJavaのクラスはインターフェイスを優先するのですか?

2023-07-14 14:02:50

疑問点

PMD は違反を報告するだろう。

ArrayList<Object> list = new ArrayList<Object>();

違反は "「ArrayList」のような実装型の使用は避け、代わりにインターフェイスを使用すること"でした。

以下の行で違反が修正されます。

List<Object> list = new ArrayList<Object>();

なぜ後者の List の代わりに ArrayList ?

どのように解決するのですか?

具象型よりもインターフェイスを使用することは、優れたカプセル化とコードの疎結合のための鍵です。

あなた自身のAPIを書くときにこの実践に従うのは良い考えです。そうすれば、(モッキング技術を使用して)コードにユニットテストを追加し、将来必要であれば基礎となる実装を変更することがより簡単であることに後で気づくでしょう。

ここに 良い記事 をご覧ください。

お役に立てれば幸いです。