Какой шаблон проектирования использовать для замены условия if в коде c # - PullRequest
0 голосов
/ 27 сентября 2018

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

public ITrialBalance GetTrialBalanceReport(string param1, int param2)
    {

        if (param2 == 1)
            return new TrialBalanceReport().GetTrialBalanceLevel2(param1, param2);
        else
            return new TrialBalanceReport().GetTrialBalanceLevel2(param1, param2);
    }

Спасибо

1 Ответ

0 голосов
/ 03 октября 2018

Условия if-else устраняются с помощью полиморфизма.Ваша функция, имеющая все операторы if-else, заменяется виртуальной функцией в базовом классе.Каждое условие if-else имеет соответствующий производный класс, который соответственно реализует эту виртуальную функцию.

Ожидается, что производные и базовые классы и параметры функции будут более значимыми объектами, а не просто числами, такими как param1 или param2.

...