I am reading Algorithms 4th Edition by Robert Sedgewick and in chapter 1.2 it discusses API design. It says:
"The key to success in modular programming is to maintain independence between modules. We do so by insisting on the API being the only point of dependence among modules."
Now the book is based on Java. I am considering this in terms of C++ development (but I imagine concepts are similar).
Is this suggesting that if I have a library eg to do networking, that if a client #includes my net.hpp header (fictional name) and maybe sets to link with net.lib then no other includes or libraries should be required? Is that the jist of this? Or is there something else?