Tight Coupled Code: public class A { } public class B { private A _a; public A() { _a = new A(); } } In the above code, B class has dependency on A class. Decoupled Code: Program to Interface is the best way to decouple the code. I will take and Interface and use Dependency Injection specially Constructor Injection.