principles:single_level_of_abstraction
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| principles:single_level_of_abstraction [2021-09-02 18:14] – old revision restored (2021-09-02 10:46) 65.21.179.175 | principles:single_level_of_abstraction [2021-10-18 22:03] (current) – +++ restored +++ christian | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Single Level of Abstraction (SLA) ====== | ====== Single Level of Abstraction (SLA) ====== | ||
| - | |||
| ===== Variants and Alternative Names ===== | ===== Variants and Alternative Names ===== | ||
| + | |||
| * One Level of Abstraction | * One Level of Abstraction | ||
| Line 12: | Line 12: | ||
| ===== Principle Statement ===== | ===== Principle Statement ===== | ||
| - | Each method should be written in terms of a single level of abstraction | + | Each method should be written in terms of a single level of abstraction. |
| Line 23: | Line 23: | ||
| A further indicator for a missing method is the combination of a blank line, a comment and a block of code. In most of the cases the code block should go to a new private method. This also makes the comment obsolete as the new method carries a name which typically resembles the comment. | A further indicator for a missing method is the combination of a blank line, a comment and a block of code. In most of the cases the code block should go to a new private method. This also makes the comment obsolete as the new method carries a name which typically resembles the comment. | ||
| - | Sometimes extracting the method would result in the new method having a large number of parameters. Alternatively the parameters could be converted to fields of the class. But this would often result in bad [[glossary: | + | Sometimes extracting the method would result in the new method having a large number of parameters. Alternatively the parameters could be converted to fields of the class. But this would often result in bad [[glossary: |
| ===== Rationale ===== | ===== Rationale ===== | ||
| Line 89: | Line 89: | ||
| result.add(dto); | result.add(dto); | ||
| } | } | ||
| + | return result; | ||
| } | } | ||
| </ | </ | ||
| - | There are two levels of abstractions in this method. First there is the loop which acts upon the whole '' | + | There are two levels of abstractions in this method. First there is the loop which acts upon the whole result set and second there is the loop body which converts a single entity to a [[patterns: |
| <code java> | <code java> | ||
| Line 134: | Line 135: | ||
| Discuss this wiki article and the principle on the corresponding [[talk: | Discuss this wiki article and the principle on the corresponding [[talk: | ||
| + | |||
principles/single_level_of_abstraction.1630599252.txt.gz · Last modified: by 65.21.179.175
