인터넷에 연결하고 다음과 같은 연결 결과를 표시하는 코드 세그먼트가 있다고 가정하십시오.
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
객체를 해제합니까?) 이제 버그를 수정하려면이 코드의 복사 된 모든 인스턴스를 찾아야한다고 상상해보십시오. 이제 당신이 그것을해야하는 사람이 아니라 당신을 아는 미친 도끼 살인자라고 생각하십시오.