Angenommen, ich habe ein Codesegment, um eine Verbindung zum Internet herzustellen und die entsprechenden Verbindungsergebnisse anzuzeigen:
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)
}
}
Der Code ist lang und wird häufig verwendet. Für den obigen Code sind jedoch keine zusätzlichen Dinge wie benutzerdefinierte Funktion und Klasse erforderlich (HttpRequest und Alert werden beide standardmäßig vom Framework bereitgestellt). Obwohl das Codesegment lang ist, ist dies der Fall unkompliziert und nicht komplex (es ist lang, nur weil es Bündel von Einstellungen wie URL, Schriftgröße ... gibt), und das Codesegment weist geringe Unterschiede zwischen Klassen auf (z. B. URL, Anforderungsdaten, Fehlercode-Handle-Fälle, normales Handle) Fälle...)
Meine Frage ist, ist es akzeptabel, langen, aber unkomplizierten Code zu kopieren und einzufügen, anstatt sie in eine Funktion zu packen, um die Abhängigkeit von Code zu verringern?
Alert
Objekte?) Stellen Sie sich nun vor, Sie müssen jede kopierte Instanz dieses Codes finden, um den Fehler zu beheben. Stellen Sie sich nun vor, nicht Sie müssen es tun, sondern ein verrückter Axtmörder, der weiß, dass Sie derjenige waren, der all diese Kopien überhaupt erstellt hat.