Интернет магазин китайских планшетных компьютеров



Компьютеры - Магическая кнопка

23 января 2011





Магическая кнопка — это анти-паттерн, очень распространённый в средах визуальной разработки. В этом случае, программист сначала рисует пользовательский интерфейс, а затем пишет бизнес-логику в автоматически созданных методах.

Проблемы этого анти-паттерна:

  • Код обработчиков элементов интерфейса неконтролируемо растёт
  • Изменение пользовательского интерфейса становится сложным
  • Усложняется тестирование кода

Плохой пример

procedure TForm1.Button1Click;
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKey_Current_User;
    if reg.OpenKey then
    begin
      reg.WriteString;
    end;
  finally
    reg.Free;
  end;
end;

Хороший пример

В этом случае лучше будет произвести рефакторинг бизнес-логики в отдельный класс.

type
  TPreferences = class
  private
    FFilename: String;
    procedure SetFilename;
  public
    property Filename: String read FFilename write SetFilename;
    procedure Load;
    procedure Save;
  end;

И воспользоваться методом этого класса «Сохранить» из обработчика нажатия кнопки:

procedure TForm1.Button1Click;
begin
  Preferences.Save;
end;
procedure TForm1.Edit1Change;
begin
  Preferences.Filename := Edit1.Text;
end;

Сейчас эта проблема стала актуальной и в Visual C#.



Просмотров: 687


<<< Зависание
Магическое число (программирование) >>>