Ho bisogno di una raccomandazione di progettazione: ho una classe che invia una richiesta http tramite un'altra classe WebServiceHandler()
Sto esitando tra le seguenti due implementazioni, quale scegliere? Qual è il più preciso dal punto di vista OO?
Prima implementazione:
/* WebServiceHandler class is charged on sending http requests and getting responses */
public class WebServiceHandler()
{
public boolean sendRequest(String method)
{
/*send a http request, get a response*/
}
}
/* Step is modeling one request execution, on the main program I can have multiple steps to get a scenario like: connect to the server, send a get request, etc */
public class Step()
{
private boolean result=false;
private WebServiceHandler handler;
public Step (WebServiceHandler handler)
{
this.handler= handler;
}
private void execute()
{
result = handler.sendRequest(this.httpMethod);
/*this.httpMethod can be GET Http method for example*/
}
}
public class Main
{
public static void main(String[] args)
{
handler= new WebServiceHandler();
step= new Step(handler);
step.execute();
}
}
Seconda implementazione:
public class WebServiceHandler()
{
public boolean sendRequest(String method)
{
/*send a http request, get a response*/
}
public void executeStep(Step step)
{
result=sendRequest(step.getMethod());
step.setResult(result);
}
}
public class Step()
{
private boolean result=false;
setResult(String result){/*setter*/}
}
public class Main
{
public static void main(String[] args)
{
handler = new WebServiceHandler();
step = new Step();
handler.executeStep(step);
}
}