I am learning the concept of IoC and DI. I checked a few blogs and below is my understanding:
A tight-coupling example without the use of IoC:
Public Class A
{
public A(int value1, int value2)
{
return Sum(value1, value2);
}
private int Sum(int a, int b)
{
return a+b;
}
}
After IoC:
Public Interface IOperation
{
int Sum(int a, int b);
}
Public Class A
{
private IOperation operation;
public A(IOperation operation)
{
this.operation = operation;
}
public void PerformOperation(B b)
{
operation.Sum(b);
}
}
Public Class B: IOperation
{
public int Sum(int a, int b)
{
return a+b;
}
}
The method PerformOperation in Class A is wrong. I guess, it is again tightly coupled as parameter is hard coded as B b.
In the above example, where is IoC as I can see only Dependency Injection in the constructor of Class A.
Please clear my understanding.