It replaces concrete objects by interfaces or abstracts ones when it is possible