Witam,
Zacząłem swój mały projekcik, poruszam się jak dziecko we mgle i ciągle potykam o sznurowadła :) W moim ostatnim poście Shalom napisał, że nie ma nic złego w powiązaniach dwukierunkowych pomiędzy klasami. Nie wiem tylko jak rozwiązuje się praktyczny problem - automatycznego wiązania obiektów. Mam klasę klasa_szkolna i klasę dziecko. Kiedy przypisuję dziecko do klasy, chciałbym od razu, by w obiekcie klasa pojawiło się dziecko a w obiekcie dziecko pojawiła się informacja, do jakiej klasy należy. Tylko czy w ogóle warto to automatyzować? Moje rozwiązanie:
class Dziecko : Osoba
{
public bool PrzypiszDoKlasy(Klasa_szkolna klasa)
{
if (this.klasa_szkolna == klasa)
{
// nie przypisano (juz byla przypisana)
return false;
}
else
{
this.klasa_szkolna = klasa;
klasa.DodajUcznia(this);
return true;
}
}
}
class Klasa_szkolna
{
public bool DodajUcznia(Dziecko uczen)
{
if (uczniowie.Contains(uczen))
{
return false;
}
else
{
uczen.PrzypiszDoKlasy(this);
uczniowie.Add(uczen);
return true;
}
}
}
Zdaje się, że działa prawidłowo. Zastanawiam się tyko, czy jest może jakieś inne, prostsze, mniej zamotane rozwiązanie? Może lepiej darować sobie automatyzacje wzajemnego powiązania i pamiętać, by za każdym razem wykonywać obie operacje dwoma osobnymi instrukcjami?