C++ FAQ Celebrating Twenty-One Years of the C++ FAQ!!!
(Click here for a personal note from Marshall Cline.)
Section 7:
[7.3] When is an interface "good"?

When it provides a simplified view of a chunk of software, and it is expressed in the vocabulary of a user (where a "chunk" is normally a class or a tight group of classes, and a "user" is another developer rather than the ultimate customer).

  • The "simplified view" means unnecessary details are intentionally hidden. This reduces the user's defect-rate.
  • The "vocabulary of users" means users don't need to learn a new set of words and concepts. This reduces the user's learning curve.