It applies to:
- Interfaces
- Classes
- Methods
- Whole Modules
The piece of code should be named to precisely reflect the functionality in contains and it should be developed, and subsequently extended, to preform ONLY the functionality intended.
If there is a need to add different functionality, a new piece of code should be refactored out.