Witam.
Mam problem z zadaniem. Moim zadaniem jest utworzyć klasę Firma, która posiada wiele Pojazdów. Przy testach dodać odpowiednią liczbę
pojazdów każdego typu (np. po 100) odpowiednim generatorem. Utwórz metody:
a. Znaleźć pojazd o podanym identyfikatorze (zwróć referencję do niego)
b. Dodać nowy pojazd danego typu
c. Usunąć pojazd o określonym identyfikatorze
d. Obliczyć koszt utrzymania pojazdu o podanym identyfikatorze na podstawie liczby km
oraz liczby godzin.
Mam stworzone już 4 klasy: Pojazd - klasa główna i 3 klasy potomne (auto, kolej,samolot). Jakie metody(funkcje) muszę zawrzeć w klasie Firma aby utworzyć wiele różnych typów pojazdów 'na raz'.
Pozdrawiam!
W treści zadania nie ma nic wspomniane, że to obiekt Firma
ma się zajmować tworzeniem pojazdów.
To w takim razie jak mam rozwiązać to zadanie?
Skorzystać z wzorca Factory.
Na przykład możesz stworzyć metodę która zwraca referencję na abstrakcyjny obiekt a w środku losuje którą implementacje ma wytworzyć Losujesz inty z zakresu 0-2 i na tej podstawie tworzyć nowy obiekt
Tworzysz klasę Firma.
Tworzysz klasę Pojazd
Tworzysz klasę Samochod: Pojazd
Tworzysz klasę Samolot: Pojazd
Tworzysz klasę Statek: Pojazd
Tworzysz enum RodzajPojazdu
{
Samolot,
Samochod,
Pojazd
}
W klasie Firma tworzysz:
-
pole List<Pojazd> _Pojazdy;
-
metodę DodajPojazd(Pojazd _pojazd)
a w niej _Pojazdy.Add(_pojazd); -
metodę Dodaj100Pojazdow(RodzajPojazdu rodzaj)
{
for (int i=0; i<100; i++)
{
switch(rodzaj)
{
case rodzaj.Samochod: DodajPojazd(new Samochod());
break;
case rodzaj.Statek: DodajPojazd(new Statek());
break;
case rodzaj.Samolot: DodajPojazd(new Samolot());
break;
}
}
}
Oczywiście jest pomyłka w enum
Powinno być
Tworzysz enum RodzajPojazdu
{
Samolot,
Samochod,
Statek
}
Z resztą metod z pewnością sobie poradzisz.
Pamiętaj tylko, że to takie programowanie "szkolne".
W prawdziwym programowaniu dodanie do klasy Firma metod tworzących Pojazdy byłoby nie do pomyślenia, powinna tym się zajmować osobna klasa, jak już wspomniano wyżej - Factory.
Obliczanie kosztów powinno odbywać się w klasie ObslugaPojazdu, w której pobierzesz z klasy Firma koszt paliwa do wyliczenia kosztów oraz pojazd, dla którego mają być wyliczone koszty.
ObsługaPojazdu może być częścią (polem) klasy Firma.