Java课程会话类扩展与重构实践
在软件开发中,我们常常会遇到需要对现有类进行扩展以满足新需求的情况。本文将详细介绍如何对课程会话类进行扩展,以支持夏季课程会话,并对代码进行重构优化。
1. 需求背景
当前的 CourseSession
类仅支持春季和秋季的15周课程会话(包含一周假期),但学校还需要支持夏季课程会话。夏季课程会话从6月初开始,持续8周且无假期。
2. 创建夏季课程会话类
为了支持夏季课程会话,我们决定创建一个新的类 SummerCourseSession
,并让它继承自 CourseSession
。以下是创建测试类的代码:
package sis.summer;
import junit.framework.*;
import java.util.*;
import sis.studentinfo.*;
public class SummerCourseSessionTest extends TestCase {
public void testEndDate() {
Date startDate = DateUtil.createDate(2003, 6, 9);
CourseSession session = SummerCourseSession.create("ENGL", "200", startDate);
Date eightWeeksOut = DateUtil.createDate(2003, 8, 1);