2016-06-29 5 views
-6

Как показано на рисунках, две части кода почти одинаковы с небольшими отличиями. Каждый дубликат может создать некоторые проблемы, поэтому, если вы столкнулись с такими ситуациями, как вы должны их решать?Как избежать дублирования кода

Example 1

Example 2

+1

Напишите вспомогательную функцию. Или - еще лучше - лямбда. Только делайте это, если это улучшает читаемость. – lorro

+6

Не размещайте фотографии текста - отправляйте текст. – molbdnilo

+0

Извините, это мой первый раз, используя stackoverflow. –

ответ

0

Это зависит от случая.

В общем, вы бы добавили функцию, которая знает оба пути и возвращает значение, которое вам нужно в каждом случае.

Так что в вашем случае вы могли бы сделать что-то вроде

bool myFuction(bool condition, int i, int k) 
{ 
    if(condition == true) 
    { 
    return (i + MIN_SIZE + k < CK_SIZE); 
    } 
    else 
    { 
    return (i - MIN_SIZE - k >= CK_SIZE); 
    } 
} 

Теперь вы можете вызвать myFunction(..)

bool condition бы условие кастрированный баран вы решили использовать первый или второй путь.

Смежные вопросы