假设我有一段代码可以连接到互联网并显示类似的连接结果:
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)
        }
}
代码很长,很常用,但是上面的代码不需要任何其他东西,例如自定义函数和类(默认情况下,框架都提供了HttpRequest和Alert),尽管代码很长,但是简单,不复杂(很长一段时间,因为有很多设置,例如url,字体大小...),并且代码段在类之间几乎没有变化(例如:url,请求数据,错误代码句柄情况,普通句柄)情况...)
我的问题是,复制并粘贴长而直接的代码,而不是将它们包装在函数中以减少代码的依赖性,这是否可以接受?
Alert对象吗?)现在想象您必须找到该代码的每个复制实例来修复该错误。现在想象不是必须要做的,而是一个疯狂的斧头杀人犯,他知道您是首先创建所有这些副本的人。