Seperation of Concerns

Seperation of concerns (SoC) is a key software design principle that mainly states; 
- different concerns of your design should not be colocated, 
- meaning that different concerns should be clearly isolated with boundaries.

Then what is a concern ?
A concern is a way of grouping of items in a specific software development scope.

For example;
- In the context of object-oriented programming languages such as Java, the concerns are seperated into objects.
- When the context is of service-oriented design, then the concerns are seperated into services.
- In the architectural design patterns such as MVC, we seperate concerns into a kind of grouping: model, view and controller.
- The question of why we put the css styles into seperate files is another good example of seperating concerns of styling from the content.
- In a modular software program, different modules are seperated concerns in a way.

The idea of seperating responsilities in Single Responsibility Principle (SRP) of SOLID principles can be thought as related with SoC.



Java EE Technology Stack

Dependency Injection In Java and CDI