Design guideline for OOP: The expression of an algorithm should model the application.
Stated differently: The solution to the problem should resemble the problem.
Observers of the solution should be able to recognize the problem without knowing about it in advance.