> For the complete documentation index, see [llms.txt](https://dotnetweb30-ke.gitbook.io/ke/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dotnetweb30-ke.gitbook.io/ke/design/ood/separation-of-concerns-principle.md).

# Separation of concerns principle

{% hint style="success" %}
**Separation of concerns (SoC)** is a design principle for separating a computer program into distinct sections, so that each section addresses a separate concern.
{% endhint %}

A **concern** is a set of information that affects the code of a computer program.

A program that embodies SoC well is called a modular program. Modularity, and hence separation of concerns, is achieved by encapsulating information inside a section of code that has a well-defined interface.
