Припустимо, у мене є сегмент коду для підключення до Інтернету та показ результатів з'єднання, як це:
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
об'єкти?) Тепер уявіть, що вам потрібно знайти кожен скопійований екземпляр цього коду, щоб виправити помилку. А тепер уявіть, що не вам належить це зробити, а божевільний вбивця сокири, який знає, що ви були тим, хто створив усі ці копії.