2017-03-15 8 views
1

私はDIについて読んでいて、Springのいくつかのオブジェクトをautowiringして、この状況を遭遇しました。クラスAとBはインターフェイスIを実装しています。クラスCはタイプIの自己依存依存関係を取得します。 m1とm2はAとBの両方で実装されています。 Aがそれ自身のメソッドm3を持ち、Bがそれ自身のメソッドを持っているなら、m4 - m3とm4はIの一部ではありません。私はこれらを呼び出すことができません。この回避策はありますか?そうでない場合は、これに反するデザイン原則がありますか?クラスはDIの下でインターフェイスの外に独自のメソッドを持つことができますか?

おかげ

答えて

0

私は、サンプルコードがないので、私は問題を理解している場合わかりません。ここに私が理解しているものからの私の答えがあります。私はメソッドが契約内にない限り、インターフェイスを介してオブジェクトに注入されるインスタンスのメソッドを呼び出すことはできないと思います。これは、インターフェイスを使用する目的全体を打ち負かします。インタフェースで定義されているものだけを使用することができます。そのインターフェイスを実装するクラスが追加のメソッドを持っている場合、私はそれらを呼び出すと考えることができる唯一の方法は、いくつかの反射魔法を介してです。しかし、それはパターンやベストプラクティスに反するでしょう。

関連する問題