No, ez már sokkal "szebb" kód, ebből már érthető, hogy mit akar csinálni, ráadásul csak két absztrakciós szintje van.
Miért szedjem szét például az üres sorok mentén, ha egyben is láthatom, hogy mi, hol és mikor fog megjelenni?
Ezt már nem feltétlen kell szétszedni, így is elfogadható.
Azonban lehet még "szebbé" tenni, aminek szintén vannak előnyei, hátrányai.
POS_SPRITE = Point(0, 0);
POS_HEALTH = Point(8, 16);
POS_STATE = Point(16, 32);
drawUnit(unit) {
drawSprite(unit.getSpriteName());
drawHealth(unit.getHealth());
drawState(unit.getState());
drawSelection(unit.getSelection());
}
drawSprite(spriteName) {
draw(spriteName, POS_SPRITE);
}
...
Előnyei:
- olvashatóbb, könnyebben érthető kód,
- könnyebben módosítható,
- könnyebben újrafelhasználható -> kevesebb duplikáció
- jobban látható az üzleti logika,
- könnyebben optimalizálható,
- egy-egy rész kevesebb ok miatt változhat,
- nagyobb a kohéziója, kisebb az összefonódása (coupling),
...
Hátrányai:
- kicsit hosszabb,
- több idő megírni (átírni),
- ha nem tud optimalizálni raja a fordító, akkor esetleg a kisebb performancia (mérni kell!)