Dependency Injection

Dependency Injection:


  • DI is a technique where 1object (or static method) supplies dependencies for other objects.i.e. Passing the service to the client, rather than client building the service himself.
  • It is done so that your code can be re-used and can be loosely coupled.
Why to Use Dependency Injection ??

           The intent behind the DI is to de-couple objects to an object to an extent, such that no other client code had to be changed simply because object needs to be changed to diff. one


Advantages:
  • DI allows concurrent or Independent development
  • Decrease coupling between the class & dependency



There are 3 types in which DI can be achieved:
1.      Constructor Injection: Dependencies are provided through class Constructor.
2.      Setter Injection: Client exposes the setter method() ,  so that the injector injects the dependencies
3.      Interface Injection: Client must implement that expose the setter() that accept dependency

Constructor Injection :

Public class Client {
                              // Constructor
                              Client(Service service){
                              This.service= service;

}

}


Setter Injection :
      Public class Client {
                              public void serService(Service service){
                              This.service= service;
}
     }



Interface Injection :
      Public interface Client {
                             
                              Public void setService(Service service);
     }

Steps to Design DI: 

1.      Design interfaces
2.      Don’t use classes to call other class, instead use dependencies
3.      Don’t create objects, set it NULL
4.      Move objects to the class level
5.      Create Getters & Setters
Eg:
Public interface test {    // 1
        Void add(int I, int j);
}

Public class TestClass implements test {
        Test obj= new test(); // Do not do this, instead follow next step
        Test obj= null // 3
Public static void main(String [] args)
{
        Int sum= obj.add(1,2);
        System.out.println(sum);
}

 //Getter & Setters //5


}

No comments:

Post a Comment