Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Java]Jak zastąpić IF polimorfizmem - czysty kod
gregi
post
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 11.09.2003

Ostrzeżenie: (0%)
-----


czy może ktoś podrzucić przykład jak zastąpić if, case polimorfizmem ?
Chciałbym to zrozumieć : )
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
PrinceOfPersia
post
Post #2





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


  1. System.out.println("Matryca =-1p");

wnioskuję, że to nic nie znaczy tylko do debugowania? Więc to olewam.

Co do reszty kodu to przede wszystkim, jedyne co tak naprawdę zmieniasz to liczby w parametrach, a czasem nawet nie to:

  1. connector.updatePointsUser(slowko_ang, 2++punktyUser); // swoja droga tu nie ma literowki? czy ta 2 nie jest tu przez przypadek?
  2. ....
  3. .....
  4. connector.updatePointsUser(slowko_ang, ++punktyUser);
  5. ...
  6. ...
  7. connector.updatePointsUser(slowko_ang, ++punktyUser);

albo:
  1. connector.updateScheduledTimeSlowko_TODO(slowko_ang, 3);
  2. ...
  3. ...
  4. connector.updateScheduledTimeSlowko_TODO(slowko_ang, 10);

Ja bym zanim przechodził na polimorfizm, to zaczął od doprowadzenia tego, żeby to w formie if wyglądało normalnie. Czyli jak robisz to samo:
  1. connector.updatePointsUser(slowko_ang, ++punktyUser)

nie ma sensu tego pisać ponownie.

Jak się parametr, który podajesz zmienia:
  1. connector.updateScheduledTimeSlowko_TODO(slowko_ang, 10);
  2. ...
  3. ...
  4. connector.updateScheduledTimeSlowko_TODO(slowko_ang, 15);

to nie ma sensu pisać ponownie całej funkcji, skoro możesz sobie wydzielić jakąś zmienną scheduleTime i tam przypisywać 10 albo 15. A potem tę zmienną odpalać:

  1. connector.updateScheduledTimeSlowko_TODO(slowko_ang, scheduleTime);


A co do całokształtu kodu to problem jest z tym, że za cholerę nie wiadomo o co w nim chodzi. Poza tym nie wiem, czy wiesz, ale istnieje coś takiego jak operatory logiczne AND/OR etc. i można ująć kilka warunków w jeden:
Kod
-1 == punktyUser || -2 == punktyUser

|| to OR
&& to AND
bo kod, który tam wykonujesz, niczym się nie różni od siebie (oprócz innego tekstu w System.out.println)

Cytat
A potem tę zmienną odpalać:

*miałem na myśli: a potem tę zmienną podawać do odpalanej funkcji.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 11:00