feat: implement composite pattern for student search

This commit is contained in:
Дюрягин Данил
2026-08-29 16:16:17 +03:00
parent 2e44ba8fd5
commit 0d1f0cbfc4
7 changed files with 163 additions and 0 deletions
@@ -0,0 +1,22 @@
package ru.project.search;
import ru.project.student.Student;
public class AverageGradeRangeCriteria implements StudentSearchCriteria {
private final double min;
private final double max;
public AverageGradeRangeCriteria(double min, double max) {
if (min > max) {
throw new IllegalArgumentException("Min grade must be <= max grade");
}
this.min = min;
this.max = max;
}
@Override
public boolean matches(Student student) {
double grade = student.getAverageGrade();
return grade >= min && grade <= max;
}
}