Supponiamo che abbia un segmento di codice per connettersi a Internet e mostri risultati di connessione come:
HttpRequest* httpRequest=new HttpRequest();
httpRequest->setUrl("(some domain .com)");
httpRequest->setRequestType(HttpRequest::Type::POST);
httpRequest->setRequestData("(something like name=?&age=30&...)");
httpRequest->setResponseCallback([=](HttpClient* client, HttpResponse* response){
string responseString=response->getResponseDataString();
if(response->getErrorCode()!=200){
if(response->getErrorCode()==404){
Alert* alert=new Alert();
alert->setFontSize(30);
alert->setFontColor(255,255,255);
alert->setPosition(Screen.MIDDLE);
alert->show("Connection Error","Not Found");
}else if((some other different cases)){
(some other alert)
}else
Alert* alert=new Alert();
alert->setFontSize(30);
alert->setPosition(Screen.MIDDLE);
alert->setFontColor(255,255,255);
alert->show("Connection Error","unknown error");
}
}else{
(other handle methods depend on different URL)
}
}
il codice è lungo, ed è comunemente usato, ma il codice sopra non richiede cose extra come la funzione e la classe personalizzate (HttpRequest e Alert sono entrambi forniti dal framework per impostazione predefinita) e sebbene il segmento di codice sia lungo , è semplice e non complesso (è lungo solo perché ci sono pacchetti di impostazioni come url, dimensione del carattere ...), e il segmento di codice ha poche variazioni tra le classi (es .: url, dati di richiesta, casi di handle del codice di errore , casi normali di handle ...)
La mia domanda è: è accettabile copiare e incollare codice lungo ma semplice anziché avvolgerli in una funzione per ridurre la dipendenza del codice?