2

おそらく一般的な質問ですが、インターフェイス ( Service ) とその実装 ( ServiceImpl ) を持つのは悪い習慣だと考えられていますが、ServiceImplにはインターフェイスに含まれていないプライベートユーティリティ メソッドが含まれていますか?

4

4 に答える 4

9

まったく悪い習慣ではありません - ほとんどすべての非自明な具象実装クラスにはプライベート メソッドが含まれていると思います。別の方法は、多くの場合、クラス内に大きすぎるメソッド本体を持つことです。

忘れないでください。クラスの誰も、あなたがたくさんのプライベート メソッドを持っているかどうかをまったく気にするべきではありません。彼らはあなたのパブリック API (または関連するパッケージ/保護された API) のみを気にする必要があります。

于 2012-05-25T18:20:11.877 に答える
5

いいえ、まったくそうではありません。まさにあなたがすべきことです。

于 2012-05-25T18:20:31.813 に答える
5

インターフェイスの理由は、コントラクトを定義するためです。実装には、そのコントラクトを機能させるためのプライベート メソッドをいくつでも含めることができます。

これは決して悪い習慣とは見なされません。それに加えて、実装クラスでパブリック メソッドを提供することもできます。

インターフェイスによって提供される API を使用する代わりに、実装クラスの public メソッドを使用する場合、これは非常に一般的な注意事項では間違いなく悪い習慣ですが、回避できない場合もあります。

于 2012-05-25T18:20:43.827 に答える
5

いいえ、大丈夫です。Service インターフェイスは、世界に公開したいものをリストするだけです。どのように実装するかはあなた次第です。これらのプライベート ユーティリティ メソッドを使用してインターフェイスを実装する場合は、問題ありません。

于 2012-05-25T18:20:46.353 に答える