First-order function dispatch in a Java-like programming language
Separation of concerns is an important concept in software development. Every software application consists of multiple concerns, examples are: what is to be computed, how the results are displayed, who is authorized to view the results, which data is logged