In the domain of commercial large-scale software development the following design principles come to the fore:
- API-centered design,
- implementation hiding,
- minimization of compilation and component dependencies,
- separation of concerns,
- consistent and recognizable implementation and deployment patterns,
- multi-platform support.
The Pimpl idiom can help great deal achieving these goals. It is a simple yet robust programming technique to minimize coupling via
- the separation of public interface and private implementation and then
- implementation hiding.
HTML documentation is available here.