Я не уверен, что вы уже пробовали это, но можете ли вы сгруппировать ваши операторы if в значимые функции? Может предотвратить дублирование кода, а иногда для небольших вещей это лучше, чем полиморфизм.
, например, если у вас есть:
Girl shirly;
Girl ruth;
if(shirly.pretty && shirly.smart && (!shirly.married)){
...
}
if(ruth.pretty && ruth.smart && (!ruth.married)){
...
}
//a better way will be
if(doILove(shirly)){
...
}
if(doILove(ruth)){
...
}
//or in case of a more general statment
if(doLoveCondition(shirly.pretty,shirly.smart,!shirly.married){
...
}
if(doLoveCondition(ruth.pretty,ruth.smart,!ruth.married){
...
}
, если бы вы разместили код, было бы проще найти конкретное решение.