"High level modules should not depend on low level modules. Both should depend on abstractions. Abstractions should not depend upon details. Details should depend on abstractions"
–Robert C. Martin
–Robert C. Martin
Have you ever found yourself standing in a shoe store wondering if you should get the brown or the black pair, only to get home and regret your choice? Sadly, once you've bought them, they're yours. Programming against concrete implementations...