긴 함수
임시 변수를 질의 함수로 바꾸기
// ASIS
public void writeMarkDown(){
//생략...
foreach(Participants p : participants) {
long count = p.homework().values().stream().filter(v -> v).count();
double rate = count * 100 / totalNumberOfEvents;
String markdownForHomework = getMarkdownForParticipant(totalNumberOfEvents,p,rate);
writer.print(markdownForHomework);
}
}
private String getMarkDownForParticipant(int totalNumberOfEvents, Participant p, double rate) {
return String.format("| %s %s | %.2f%% |\n", p.username(), checkMark(p,totalNumberOfEvents), rate)
}
//ToBe
public void writeMarkDown(){
//생략...
foreach(Participants p : participants) {
String markdownForHomework = getMarkdownForParticipant(totalNumberOfEvents,p);
writer.print(markdownForHomework);
}
}
private String getMarkDownForParticipant(int totalNumberOfEvents, Participant p) {
return String.format("| %s %s | %.2f%% |\n", p.username(), checkMark(p,totalNumberOfEvents), getRate(totalNumberOfEvents,p)))
}
private double getRate(int totalNumberOfEvents, Participant p) {
long count = p.homework().values().stream().filter(v -> v).count();
return count * 100 / totalNumberOfEvents;
}매개변수 객체 만들기
객체 통째로 넘기기
함수를 명령으로 바꾸기
조건문 분해하기
반복문 쪼개기
조건문을 다형성으로 바꾸기
Last updated