Обсуждение:Магическая кнопка

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Обсуждение

[править код]

я бы POV поставил бы//Berserkerus 10:29, 5 июля 2008 (UTC)[ответить]

Значимость

[править код]

Узколобый пуризм, на мой взгляд. Дело в том, что анти-паттерном это становится с ростом кода обработчика события. В нормальном процессе разработки код начинается именно в методах, сгенерированных в дизайнере, и в процессе роста распределяется по методам, выполняющим атомарные операции. Или не распределяется. Вот тогда - плохо. Статья же усматривает причину в базовой концепции визуального дизайна и зачем-то предает ее анафеме. Кстати, о пуризме. Нотация в коде "плохого примера" - ужасающая. Как только в методе наберется 3-4 атомарные операции - он станет совершенно нечитаемым из-за этих reg, str, итп. О том, когда нужно извлекать код в отдельные методы: формально это невозможно определить, но в моей тулзе для рефакторинга критика "длинный метод" появляется когда анализатор встречает метод состоящий из более чем 40 строк. © Al Leween 20:38, 9 сентября 2009 (UTC)[ответить]

Качество никуда не годится

[править код]

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

procedure TForm1.SavePreferences(const FileName: string);
begin
  with TRegistry.Create do
  try
    RootKey := HKey_Current_User;
    if OpenKey('Software\MyCompany', true) 
      then WriteString('Filename', FileName)
      else raise Exception.Create('Can''t save preferences');
  finally
    Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SavePreferences(Edit1.Text);
end;

Хотя вообще-то лучше бы всю статью переписать полностью. Это просто в целом неадекватно.

217.74.47.124 10:29, 25 июня 2012 (UTC) Softwarer[ответить]