Наша команда унаследовала систему, которую мы пытаемся улучшить по мере go.
Одна вещь, которую мы заметили в наших бритвенных представлениях, - это множество случаев, когда записываются различные действия контроллера, которые похоже, они могут быть параметризованы.
например, у нас есть что-то вроде этого ...
ProcessSubmissionView.cs html
<button class="btn" type="submit" id="process-english-submission" formaction="ProcessWelshSubmission" formmethod="post">Process Welsh Submission</button>
<button class="btn" type="submit" id="process-welsh-submission" formaction="ProcessEnglishSubmission" formmethod="post">Process English Submission</button>
... который мы бы предпочли написать так, т.е. вызвать одно действие (ProcessSubmission
), но с параметром - в данном случае класс, реализующий интерфейс INationality
:
<button class="btn" type="submit" id="process-english-submission" formaction="ProcessSubmission" TODO PARAM= new EnglishNationality() formmethod="post">Process English Submission</button>
<button class="btn" type="submit" id="process-welsh-submission" formaction="ProcessSubmission" TODO PARAM= new WelshNationality() formmethod="post">Process Welsh Submission</button>
В этом сценарии у нас будет интерфейс INationality
с классами EnglishNationality
и WelshNationality
, реализующими INationality
.
Можем ли мы сделать это в части выше, где говорится TODO PARAM = new EnglishNationality () / new WelshNationality () ?
Обратите внимание, что у нас есть лучшее решение, чем наше текущее, как указано в этом сообщении SO .
Однако возможность передавать экземпляры класса в будущем станет еще лучшим решением.