Позволю с Вами несогласится по поводу второго варианта (там, где объявляется property). Внедрение зависимостей таким образом тоже может осуществляться.
Если Вам нужно что-то написать:
1. Посмотрите, возможно ли реюзать ваш старый код.
2. Если реюзать старый код нельзя, посмотрите, можно ли купить.
3. Если купить нельзя, напишите реюзебл решение.
Я не люблю отвечать вопросом на вопрос, но разве кнопка должна делать только submit?
Для меня логично, что ссылка отвечает за переход на другой url, кнопка отвечает за события по нажатию. У этих компонентов абсолютно различная логика.
хлам получается при кривом дизайне приложения
1. Посмотрите, возможно ли реюзать ваш старый код.
2. Если реюзать старый код нельзя, посмотрите, можно ли купить.
3. Если купить нельзя, напишите реюзебл решение.
по-моему из Совершенного Кода.
Для меня логично, что ссылка отвечает за переход на другой url, кнопка отвечает за события по нажатию. У этих компонентов абсолютно различная логика.