I'd say it primarily depends on what you mean by "Know"...

1. If you just want to be able to change implementation details without impacting people using your code.
2. If you mean want to keep...