Aktywne Wpisy

yahoomlody +75
Mam zamiar w czerwcu p--------c sie z plecakiem na 2-3 tygodnie do #japonia na samotnego spierdotripa spiac po hostelach i jezdzac pociagiem z miasta do miasta. Jakies rady co jest super polecane do odwiedzenia, zjedzenia?
#podrozujzwykopem #podroze
#podrozujzwykopem #podroze

JoeGlodomor +66
Jak to jest, że wielu facetów tak się oburza na wybór Ciri jako protagonistki w nadchodzącym Wiedźminie, bo niby nie mogą się wczuć w postać żeńską. Ale za to bez problemu mogą się wczuć w legendarnego zabójcę potworów czy innych superbohaterów w grach, jak są tylko spoconymi grubasami grajacymi w gierki.
#gry
#gry





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