Этот вопрос связан с С#, но может быть применим и к другим языкам. У меня есть оговорка против использования кода, например:
using System.Windows.Forms;
class MyForm : Form
{
private Timer myTimer;
private Button myButton;
public MyForm()
{
// Initialize the components, etc.
myTimer.Tick += new EventHandler( myTimer_Tick );
myButton.Click += new EventHandler( myButton_Click );
myTimer.Start();
}
private void myTimer_Tick( object sender, EventArgs eventArgs )
{
myTimer.Stop();
// also, I see a lot of usage of
// Timer.Enabled = true/false instead of -^
myButton_Click( this, ea /* or event EventArgs.Empty, or null */ );
return;
}
private void myButton_Click( object sender, EventArgs eventArgs )
{
// do a lot of stuff, with lots of logic that doesn't even use the
// state of the eventArgs
return;
}
}
Я один, в том, что вышеупомянутый стиль - домашнее животное? Есть ли другие, которые наслаждаются ясностью разделения обработки событий из рабочей нагрузки функций или даже отделяют сложные подпрограммы к отдельным функциям?
Есть ли даже принятый стиль? Я чувствую, что любая выразительность и гибкость в том, что обработка событий на С# может быть потеряна в таких стилях. Я чувствую, что если у вас есть метод, который означает "нажата кнопка", тогда его следует вызывать только при нажатии кнопки.
Для тех, кто пишет так, я бы сказал: если вы настаиваете на том, чтобы метод EventHandler обрабатывал ваш таймер и нажмите кнопку, тогда назовите его чем-то иным, чем button_Click - возможно, "handleUserEvent( object sender, EventArgs eventArgs )
".
Действительно, вопрос в том, есть ли какие-либо широко используемые стили, которые либо поддерживают, либо препятствуют использованию, например, выше?