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

Proxy Server