Einzelnen Beitrag anzeigen
Alt 13.11.2003, 00:59   #2
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard Re: Java Problemchen

es geht auf zwei arten

Code:
String directive = args[0];

Object searchObject;

if (directive.equals("actor")) {
   searchObject = new ActorSoap();
   ((ActorSoap)searchObject).setParameter("Dev-Tag",DEVTOKEN);
   ((ActorSoap)searchObject).setParameter("Mode","books"); 
   ((ActorSoap)searchObject).setParameter("Keyword",keyword);
} else if (directive.equals("artist")) {
   searchObject = new ArtistSoap();
  ((ArtistSoap)searchObject).setParameter("Dev-Tag",DEVTOKEN);
   ((ArtistSoap)searchObject).setParameter("Mode","books"); 
   ((ArtistSoap)searchObject).setParameter("Keyword",keyword);
} else if (directive.equals("asin")) {
   searchObject = new AsinSoap();
   ((AsinSoap)searchObject).setParameter("Dev-Tag",DEVTOKEN);
   ((AsinSoap)searchObject).setParameter("Mode","books"); 
   ((AsinSoap)searchObject).setParameter("Keyword",keyword);
} else if ...
} else {
   showUsage();
}
das is die nicht so schöne art

schöner wärs wenn du eine (vielleicht abstrake) oberklasse (bzw auch interface) soap hast, die die methode setparameter definiert
alle *Soap sind dann extends Soap (bzw implements Soap)


dann gehts mit

Code:
String directive = args[0];

Object searchObject;

if (directive.equals("actor")) {
   searchObject = new ActorSoap();
} else if (directive.equals("artist")) {
   searchObject = new ArtistSoap();
} else if (directive.equals("asin")) {
   searchObject = new AsinSoap();
} else if ...
} else {
   showUsage();
}

((Soap)searchObject).setParameter("Dev-Tag",DEVTOKEN);
((Soap)searchObject).setParameter("Mode","books"); 
((Soap)searchObject).setParameter("Keyword",keyword);
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten