Aktywne Wpisy

pafffel +1118
Rosołek z mamą #polskiedomy
źródło: temp_file2797839904520334369
Pobierz
Ksemidesdelos +19
nie polecam tych chipsów z Biedronki i przestrzegam przed ich zakupem, no chyba, że ktoś lubi smak octu
ja lubie takie zwykłe solone chipsy i wziąłem te w pośpiechu ale nie doczytałem do końca etykiety
wczoraj wieczorem właczam jakiś #film otwieram chipsy i nie da się tego jeść, smakują jakby ktoś wziął zwykłe solone chipsy i polał je poprostu octem
kwaśne
ja lubie takie zwykłe solone chipsy i wziąłem te w pośpiechu ale nie doczytałem do końca etykiety
wczoraj wieczorem właczam jakiś #film otwieram chipsy i nie da się tego jeść, smakują jakby ktoś wziął zwykłe solone chipsy i polał je poprostu octem
kwaśne
źródło: c7d2795b55774947bbaeb84d93beced5
Pobierz




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?
Komentarz usunięty przez autora
Możesz ten parametr dodać przed wywołaniem metody buduj. Dać do konstruktora czy setterem ustawić.
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.
Może zamiast 1/2/3/4 zrobić enum, w enum mieć Supplier lub abstrakcyjną metodę construct:
https://hasteb.in/ayiwujomab.java
Lub by oddzielić, gdzieś mieć EnumMapkę >
a w TeInterface metoda .buduj() czy co to tam ma być.
Taki tylko luźny pomysł, nie wiem na ile pasuje do twojego problemu.
@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