Witam
Chciałbym przygotować program umożliwiający dla każdej osoby
przechowywanie informacji o tym czy dany dzień był dla niej dniem
roboczym oraz czy w danym dniu była dostępna. Bardzo bym prosił o
sprawdzenie czy przedstawiona poniżej koncepcja ma sens. Wiem, że
implementacja pozostawia wiele do życzenia, ale chodzi mi o ocenę samej
koncepcji, tzn. osoba posiada obiekty miesiąc, które z kolei posiadają
obiekty dzień.
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class PersonTest {
public static void main(String[] args) {
Person jan = new Person();
jan.months.add(new Month(30, "maj"));
Iterator<Month> iterator = jan.months.iterator();
Month month = iterator.next();
for(Day day : month.days) {
day.setAvailable(true);
day.setWorking(true);
}
}
}
class Person {
private static int idClass;
private int id;
public Collection<Month> months = new ArrayList<>();
static {
idClass = 1;
}
Person() {
id = idClass++;
}
public void addMonth(Month month) {
months.add(month);
}
}
class Month {
private String monthName;
private int numberOfDays;
public Collection<Day> days = new ArrayList<>();
Month(int numbeOfDays, String monthName) {
this.numberOfDays = numbeOfDays;
this.monthName = monthName;
for(int i = 0; i < this.numberOfDays; i++) {
days.add(new Day());
}
}
}
class Day {
private boolean working, available;
public void setWorking(boolean working) {
this.working = working;
}
public void setAvailable(boolean available) {
this.available = available;
}
public boolean isWorking() {
return this.working;
}
public boolean isAvailable() {
return this.available;
}
}