Wpis z mikrobloga

#programowanie #naukaprogramowania
Hej, jestem w trakcie pisania programu i nastąpiłem na problem. Mianowicie Mam 6 klas które liczą to samo tylko różnymi metodami. Szósta klasa potrzebuje dodatkowy parametr. Miałem pomysł aby zastosować interfejs i użyć go dla tych sześciu klas. Kod mniej więcej wygląda tak

interface Interface1
{
void buduj();
}
class Class1
{
Interface1 inter;
int i;
switch(i){
case 0:
inter = new Klasa();
klasa.buduj();
break;
case 1:
Interface1 inter = new Klasa1();
klasa1.buduj();
break;
//i tak dalej do 6 klas
}

}

tylko wtedy nie dam rady zmienic funkcji buduj dla 6 klasy, aby przyjmowała parametr.
wiem, że moge to zrobić bez interfejsu, ale czy jestem w stanie to obejść i jednak użyć jakoś interfejsu?
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@dexter1557:
A w ogóle nie ma sensu wywoływać buduj w każdym case. Zbędne powtórzenie kodu. Można użyć po switchu.
Poza tym, to stworzenie instancji w zależności od parametru aż się prosi o eksmisję do własnej metody.
  • Odpowiedz
@Jurigag: też nad tym myślałem ale doszedłem do wniosku, że to wyglądałoby "głupio".
@sorhu dzięki za rady, właśnie staram się pracować nad jakością swojego kodu. Switcha mam w osobnej klasie tylko dla uproszczenia aby nie kopiować całych klas przepisałem to tutaj. Swoja drogą wg Single resposibility principle powinienem mieć coś takiego w oddzielnej klasie czy metodzie, bo póki co popadam w Class inception :P
  • Odpowiedz