Refactoring


If you haven't already done so, remove the testReport method from CourseSessionTest and remove the corresponding production code from CourseSession.

The writeReport method is still short, but conceptually it is doing three things. To make understanding even more immediate, you can decompose the code in writeReport into three smaller methods, one each to construct the header, body, and footer of the report:

 String getReport() {    StringBuilder buffer = new StringBuilder();    writeHeader(buffer);    writeBody(buffer);    writeFooter(buffer);    return buffer.toString(); } void writeHeader(StringBuilder buffer) {    buffer.append(ROSTER_REPORT_HEADER); } void writeBody(StringBuilder buffer) {    for (Student student: session.getAllStudents()) {       buffer.append(student.getName());       buffer.append(NEWLINE);    } } void writeFooter(StringBuilder buffer) {    buffer.append(       ROSTER_REPORT_FOOTER + session.getAllStudents().size() + NEWLINE); } 



Agile Java. Crafting Code with Test-Driven Development
Agile Javaв„ў: Crafting Code with Test-Driven Development
ISBN: 0131482394
EAN: 2147483647
Year: 2003
Pages: 391
Authors: Jeff Langr

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net