Wątki są często projektowane na dwa sposoby (see java tutorials): przez rozszerzenie klasy wątków lub przez wprowadzenie klasy Runnable. Tak czy inaczej, musisz określić, co będzie działało w wątku.Jak radzić sobie z wieloma wątkami w jednej klasie?
Zaprojektowałem klasę, adapter do zasobu online, który pobiera różne rodzaje informacji. Ta klasa składa się z metod takich jak getInformationOfTypeA() i getInformationOfTypeB(). Oba zawierają kod do połączenia z zasobami online, więc oba muszą być powiązane, aby uniknąć zakleszczeń.
Pytanie brzmi: jak mam to zaprojektować? Mogę to zrobić jak poniżej, ale mogę tylko: wdrożenie jednego
metodępublic class OnlineResourceAdapter implements Runnable {
public void run() {
//get stuff from resource
getInformationOfTypeA();
}
public static void main(String args[]) {
(new Thread(new OnlineResourceAdapter())).start();
}
public void getInformationOfTypeA(){
//get information of type A
}
public void getInformationOfTypeB(){
//get information of type B
}
}
Innym sposobem byłoby tworząc oddzielne klasy dla każdej metody, ale wydaje mi się nienaturalne.
Btw: Zajmuję mój wniosek w J2ME
UPDATE:
Dzięki waszej odpowiedzi myślę, że to jest najbardziej ubraniowy użyć czegoś podobnego następujących metod: jak
Co myślisz o tym:
public class OnlineResourceAdapter{
public void getInformationOfTypeA(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
}
public void getInformationOfTypeB(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
}
}
Wha Czy myślisz o tym?
danben powtarza moją opinię. Wzorzec strategii to jedna rzecz, na którą możesz chcieć spojrzeć. Posiadanie osobnych klas wygląda na czysty sposób w tym przypadku – Aadith