Aktywne Wpisy
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
szurszur +79
Mam pytanie od osób, ktore potrafią wrzucać seriami wyłącznie wpisy negatywnie przedstawiajace Ukraine.
Macie odwage odpowiedzięc z czego wynika Wasza sympatia do Rosji? Bo nie róbcie fikołków, ze niby jesteście pośrodku, nie mozna być neutralnym i wrzucac masowo tylko ataki na Ukraine. To służy wybieleniu Rosji i przeniesieniu niecheci na Ukriane czyli dokładnie to czego aktywnie oczekuje Rosja. No chyba, że jesteście takimi tępakami i robicie to jako tzw pozyteczni.
Owszem, niektorzy
Macie odwage odpowiedzięc z czego wynika Wasza sympatia do Rosji? Bo nie róbcie fikołków, ze niby jesteście pośrodku, nie mozna być neutralnym i wrzucac masowo tylko ataki na Ukraine. To służy wybieleniu Rosji i przeniesieniu niecheci na Ukriane czyli dokładnie to czego aktywnie oczekuje Rosja. No chyba, że jesteście takimi tępakami i robicie to jako tzw pozyteczni.
Owszem, niektorzy
Mam klasę która obsługuje polecenia podawane przez użytkownika w konsoli. Tzn jest pęta while(true) która czeka na polecenie i dopasowywuje to co podał użytkownik do odpowiedniej metody, wyciąga argumenty iip.
np:
add node 1
remove node 2
itp
I teraz pytanie. Jak to zrobić mądrze i elegancko ? IFy ?Jeśli będę obsługiwał wiele poleceń z różnymi parametrami, zakopię się z ifami i nic nie będzie czytelne oraz łatwe do rozbudowy. Jest jakiś wzorzec projektowy od tego ? Pozdrawiam i życzę miłej środy :)
#programowanie #wzorceprojektowe
W języku wysokiego poziomu rozwiązanie jest proste, np.
var actions = {
'add': function(arg1, arg2) {
//magia
},
'remove': function(arg1, arg2) {
}
}
itd. (można zamiast definiować w konkretnym miejscu użyć tylko identyfikatorów funkcji)
A potem tylko wywołać ładnie
if (command in actions) {
actions[command](argumenty);
}
switch
też jest okej.
Twoja propozycja w javie chyba odpada. Chyba, że użyć map ? Nie wiem. :P
Problemem jest to, że polecenia mogą być długie, mieć wiele flag, opcji, przełączników itp. Więc wydaje mi się, że z switchami też bym się zakopał.
Tak sobie możesz zorganizować metodę main: http://pastebin.com/2A9Tfg4K
Kombinujesz dalej sam?
(tam zamiast split.length-1 powinno być samo split.length)
http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getMethod(java.lang.String, java.lang.Class...)
http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html
Dzięki temu bajerkowi z refleksją możesz wyciągnąć konkretną metodę z klasy i ją wywołać.
parsujPolecenie
będzie walka z ifami i switchami itp.
Polecenie może np. wyglądać tak:
gcc -o plik.exe -m "Siema to ja, Mirek" -O3 plik3.c
- oczywiście nie piszę gcc :) taki przykład.
Myślałem, że będzie do tego wzorzec projektowy.
@mqmq Nie, nie jestem Nim :) Zbieżność nicków i zainteresowań. Chyba robię temu kolesiowi zły PR bo już któraś osoba pytanie mnie czy to ten
@Visher: Lubię wzorce projektowe. :) Używanie znanych i lubianych schematów to chyba dobra praktyka dla początkującego programisty ? Nie wiem.
Jeżeli masz ma celu coś większego, a to jest tylko środkiem, to oczywiście polecał bym użyć gotowca. Nie
if *it == "add":
parseadd(++i)
void parseadd(iterator it)
{
if *it == "node": ...
}
itp. Prosciej i czytelniej sie tego chyba nie da zrobic.