Difference between revisions of "Separation of concerns"
Karl Jones (Talk | contribs) (Created page with "TO DO: everything. == See also == * ... == External links == * [ ] @ Wikipedia") |
Karl Jones (Talk | contribs) |
||
Line 1: | Line 1: | ||
− | + | In [[computer science]], '''separation of concerns''' ('''SoC''') is a design principle for separating a [[computer program]] into distinct sections, such that each section addresses a separate concern. | |
+ | |||
+ | == Description == | ||
+ | |||
+ | A concern is a set of information that affects the code of a computer program. A concern can be as general as the details of the hardware the code is being optimized for, or as specific as the name of a class to instantiate. | ||
+ | |||
+ | == Modularity == | ||
+ | |||
+ | 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. | ||
+ | |||
+ | == Encapsulaton == | ||
+ | |||
+ | [[Encapsulation]] is a means of [[information hiding]]. | ||
+ | |||
+ | == Layering == | ||
+ | |||
+ | [[Layered design|Layered designs]] in information systems are another embodiment of separation of concerns (e.g., presentation layer, business logic layer, data access layer, persistence layer). | ||
+ | |||
+ | == Value == | ||
+ | |||
+ | The value of separation of concerns is simplifying development and maintenance of computer programs. | ||
+ | |||
+ | When concerns are well-separated, individual sections can be reused, as well as developed and updated independently. | ||
+ | |||
+ | Of special value is the ability to later improve or modify one section of code without having to know the details of other sections, and without having to make corresponding changes to those sections. | ||
== See also == | == See also == | ||
− | * [[ | + | * [[Cascading style sheets]] |
+ | * [[HTML]] | ||
+ | * [[Semantic HTML]] | ||
+ | * [[Style sheet (web design)]] | ||
+ | * [[Web page layout]] | ||
== External links == | == External links == | ||
− | * [ ] @ Wikipedia | + | * [https://en.wikipedia.org/wiki/Separation_of_concerns Separation of concerns] @ Wikipedia |
Revision as of 10:19, 9 February 2016
In computer science, separation of concerns (SoC) is a design principle for separating a computer program into distinct sections, such that each section addresses a separate concern.
Description
A concern is a set of information that affects the code of a computer program. A concern can be as general as the details of the hardware the code is being optimized for, or as specific as the name of a class to instantiate.
Modularity
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.
Encapsulaton
Encapsulation is a means of information hiding.
Layering
Layered designs in information systems are another embodiment of separation of concerns (e.g., presentation layer, business logic layer, data access layer, persistence layer).
Value
The value of separation of concerns is simplifying development and maintenance of computer programs.
When concerns are well-separated, individual sections can be reused, as well as developed and updated independently.
Of special value is the ability to later improve or modify one section of code without having to know the details of other sections, and without having to make corresponding changes to those sections.
See also
External links
- Separation of concerns @ Wikipedia