« Home | 重新出发! » | 发现spaces一个错误 » | Loopt  VS 偷情 » | Linux VS Windows » | 硬盘分区小技巧 » | 进程学习笔记 » | 下载youtube的视频 » | 在PR中导入RM文件 » | 基本搞定 » | "多重选择"和"循环"的结合 »

Java学习笔记(lesson3)

教材《Agile Java》
面向对象有一个基本的设计原则:一个类只能做好一件事。即“单职责原则

CourseSession中的getRostrReport函数用于返回该课程的学生清单,但由于“单职责原则”的约束,因此将getRostrReport函数定义成一个独立的类。

getRostrReport类包括:
三个类变量和一个私有变量:
static final String NEWLINE = System.getProperty("line.separator");
static final String ROSTER_REPORT_HEADER = "Student" + NEWLINE + "-------" + NEWLINE; //学生报表的页眉
static final String ROSTER_REPORT_FOOTER = NEWLINE + "# students = ";
//学生报表的页脚
private CourseSession session;

成员方法
RosterReporter(CourseSession session)//构造函数
public String getReport() //打印完整的该课程学生信息

void writeHeader() //打印页眉

//打印该课程的学生信息
void writeBody() {
for (Student student: session.getAllStudents()) {
buffer.append(student.getName());
buffer.append(NEWLINE); }
}

void writeFooter() //打印页脚

System.getProperty("line.separator")函数详解
此方法以一个系统参数属性的键值作为参数,并返回与该键值相关联的系统属性
属性line.separator解释:在Unix中该属性的值为'\n'。在windows中,为'\r\n'
通常在代码中,应该使用line.separator来弥补不同平台之间的差异!

在测试类中使用的技巧
String rosterReporter = new RosterReporter(session).getReport();

Labels: