お世話になっております。依存性の注入を行いたいのですが、混乱してしまいました。
以下の通りクラスとインターフェースがある場合、sampleAでしていることは依存性の注入にはならないのでしょうか。
もしそうでない場合、どのようにしたら依存性の注入が可能かをお伺いしたいです。
java
1class sampleA{ 2 3public static void main( String[] args ) { 4sampleC samplec = new sampleC(); 5samplec.bMethod(hours, minutes); 6} 7} 8
java
1public interface B { 2 String bMethod(int hours, int minutes); 3}
Java
1public class sampleC implements sampleB { 2 @Override 3 public String bMethod(int hours, int minutes) { 4 (略) 5 } 6}
「クラスA」なるモノは見当たりませんが。
「依存性の注入」の前に、
>public sampleC(sampleC samplec){
のような意味不明なコードが出来てしまう状況が問題に思います。
ご回答いただきありがとうございます。編集いたしました。
sampleA はコンパイルできなさそうですけど・・・。
メソッド内としても、単にオブジェクトを作ってメソッドを呼んでいるだけですね。
どこからどこへ何の「依存性の注入」を行おうというのでしょうか。
そもそも「依存性」「注入」がどういうことなのかをご理解されているのでしょうか。
>どこからどこへ何の「依存性の注入」を行おうというのでしょうか。
SampleAのmainメソッドでsampleC samplec = new sampleC();とすると、SampleAはSample Cに依存することになるので、それを回避したいのですが、
SampleAに
    private SampleC samplec;
    public SampleA(SampleC sampleC) {
        this.sampleC = sampleC;
    }
と記載し、
メソッド内のsampleC samplec = new sampleC();を消した場合、
samplec.bMethod(hours, minutes);が参照できず、 private SampleC samplec;をstaticにしても実行時にSampleA.samplecがnullとなってしまいます、
> SampleAのmainメソッドでsampleC samplec = new sampleC();とすると、~
この文をご質問本文に書かれたほうがよほど具体的で分かり易いように思います。

回答2件
あなたの回答
tips
プレビュー


