>  **Separation of concerns** (**SoC**) is a design principle for separating a [computer program](https://en.wikipedia.org/wiki/Computer_program "Computer program") into distinct sections. Each section addresses a separate _[concern](https://en.wikipedia.org/wiki/Concern_(computer_science) "Concern (computer science)")_, a set of information that affects the code of a computer program. A concern can be as general as "the details of the hardware for an application", or as specific as "the name of which class to instantiate" --- ## References - https://en.wikipedia.org/wiki/Separation_of_concerns