Я читал про кампанию Anti-If. Большинство из них сказали, что используют полиморфизм для замены условного.

Итак, должен ли я всегда использовать полиморфизм при переключении типов, таких как KeyCode, в KeyEventArgs в событии KeyDown (в WinForms)?

Я всегда использую такой код.

   If e.KeyCode = Keys.F1 Then
      'Do F1 things
   ElseIf e.KeyCode = Keys.F2 Then
      'Do F2 things
   End If

Это плохо? Если да (О, еще один ЕСЛИ), не могли бы вы дать мне образец полиморфного подхода ..

-1
j-j 7 Мар 2019 в 14:49

1 ответ

Лучший ответ

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

Более того, вы могли бы сделать еще один уровень косвенного обращения, где ваши значения являются своего рода объектами Action, каждый из которых знает, как выполнять. Таким образом, вы можете повторно использовать код для запуска одинаковых функций во многих различных контекстах.

0
divinas 8 Мар 2019 в 06:58