Вы можете создать ссылку с обратными вызовами ref без использования конструктора. <input ref={(element) => { this.inputRef = element; }} />
это то, что вам нужно.
Помещенный просто, можно использовать делегатов для реализации стратегической модели.
Стратегическая модель является шаблоном. Делегаты являются функцией языка. Вы используете функцию языка для реализации шаблона. Они находятся в двух отдельных категориях понятий в целом, но связаны в их взаимодействии друг с другом.
Другими словами, стратегическая модель является проектом, делегаты C# являются кирпичами. Вы не можете создать (стратегическая модель) дом без также. (Вы могли создать его с другими видами кирпичей также, но ничто в функции языка делегатов по сути не описывает стратегическую модель).
Шаблоны разработки являются агностиком языка, высокоуровневыми решениями обычно-возникших-проблем.
Делегаты могут использоваться в определенной для платформы реализации стратегической модели для.NET, но не являются единственным способом реализовать такое решение.
Альтернативное решение состоит в том, чтобы определить интерфейс как:
public interface IStrategy
{
void DoStuff(...)
}
Стратегии были бы затем представлены классами, реализовав этот интерфейс, а не делегатом.
Делегаты могут быть хорошо реализация, если Вы ожидаете свои стратегии быть очень простыми. Для чего-либо довольно сложные, реализующие стратегии как интерфейсы дает Вам намного больше опций когда дело доходит до отслеживания состояния, организации вещей в несколько методов, совместное использование кода между реализациями, и т.д.
Как еще Вы реализовали бы стратегическую модель в C#?
Шаблоны являются вопросом архитектуры. Делегаты являются вопросом реализации.
В C# стратегическая модель будет почти всегда реализовываться с помощью делегата.
Стратегическая модель является шаблоном разработки, который позволяет Вам выбирать отличные функции во время выполнения, в то время как делегат является конструкцией языка, которая позволяет Вам создавать ссылку на функцию и использовать ее в качестве переменной.
Стратегическая модель лучше реализована с полиморфизмом, а не делегирует, поскольку полиморфная отправка имеет тенденцию быть более изящной.