User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
principles:single_level_of_abstraction [2018-04-20 01:39] [Example1: Loops]
principles:single_level_of_abstraction [2018-04-23 09:39] (current)
Line 82: Line 82:
 public List<​ResultDto>​ buildResult(Set<​ResultEntity>​ resultSet) { public List<​ResultDto>​ buildResult(Set<​ResultEntity>​ resultSet) {
     List<​ResultDto>​ result = new ArrayList<>​();​     List<​ResultDto>​ result = new ArrayList<>​();​
-    ​forng code is better:+    ​for (ResultEntity entity : resultSet) { 
 +        ResultDto dto = new ResultDto();​ 
 +        dto.setShoeSize(entity.getShoeSize()); ​        
 +        dto.setNumberOfEarthWorms(entity.getNumberOfEarthWorms());​ 
 +        dto.setAge(computeAge(entity.getBirthday()));​ 
 +        result.add(dto);​ 
 +    } 
 +    return result; 
 +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:​Data Transfer Object|DTO]]. For the latter there is no syntactical grouping. The reader of the code has to find out that the first four lines of the loop body belong together. The code also doesn'​t explicitly state that these four lines convert an entity to a DTO. So the following ​code is better:
 <code java> <code java>
principles/single_level_of_abstraction.txt · Last modified: 2018-04-23 09:39 by christian