Table Module은 데이터베이스의 한 테이블의 모든 로직을 하나의 클래스에서 처리하는 패턴입니다. 테이블의 모든 레코드를 한 번에 다루는 것이 특징입니다.
학급 담임 선생님과 비슷합니다:
// 일반적인 구현
public class StudentModule {
private DataTable studentTable; // 학생 테이블 전체 데이터
public StudentModule(DataTable studentTable) {
this.studentTable = studentTable;
}
// 전체 학생의 평균 성적 계산
public double calculateAverageGrade() {
double total = 0;
for (DataRow row : studentTable.Rows) {
total += (double) row["grade"];
}
return total / studentTable.Rows.Count;
}
// 특정 학년의 모든 학생 진급 처리
public void promoteStudents(int grade) {
for (DataRow row : studentTable.Rows) {
if ((int) row["grade"] == grade) {
row["grade"] = grade + 1;
}
}
}
// 전체 학생 통계 생성
public Statistics generateStatistics() {
// 전체 학생 데이터를 기반으로 통계 생성
return new Statistics(studentTable);
}
}
// 사용 예시
DataTable studentData = database.getTable("students");
StudentModule students = new StudentModule(studentData);
// 전체 학생 평균 계산
double avgGrade = students.calculateAverageGrade();
// 3학년 학생들 진급 처리
students.promoteStudents(3);