Intro Normal Function After Refactor
Intro Normal Function After Refactor
Normal Function After Refactor
根據上一篇
https://davidchenblog.com/posts/30996b81/#more
我們可以調整修正為
新增一個GuessStatisticsMessage class
將三個變數定義為private,如此一來三個變數提供清楚的上下文資訊
透過分割成更小函式,使演算法更加簡潔!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| private void printGuessStatistics { private String number; private String verb; private String pluralModifier; public String make(char candidate, int count) { createPluralDependentMessageParts(count); return String.format("There %s %s %s%s", verb, number, candidate, pluralModifier); } private void createPluralDependentMessageParts(int count) { if (count == 0) { thereAreNoLetters(); } else if (count == 1) { thereIsOneLetter(); } else { thereAreManyLetters(count); } } private void thereAreManyLetters(int count) { number = Integer.toString(count); verb = "are"; pluralModifier = "s"; } private void thereIsOneLetter() { number = "1"; verb = "is"; pluralModifier = ""; } private void thereAreNoLetters() { number = "no"; verb = "are"; pluralModifier = "s"; } }
|