Magiska knappen

En  magisk tryckknapp är ett anti - mönster som uppstår när det saknas abstraktion, när många olika åtgärder klumpas ihop på fel ställe, till exempel i en knappklickshanterare, istället för att fördelas mellan lämpliga klasser och funktioner. Vanligtvis uppstår problemet i visuella utvecklingsmiljöer [1] [2] när programmeraren först ritar användargränssnittet och sedan skriver affärslogiken i automatiskt genererade metoder , vanligtvis en knappklickshanteringsmetod som "OK" [3] .

Problem med detta antimönster:

Ibland förekommer liknande antimönster även i kod på serversidan, till exempel i ASP.NET Web Forms [5] .

Dåligt exempel (Borland Delphi)

procedur TForm1 . Button1Click ( Avsändare : TObject ) ; varreg : TRegistry ; _ börja reg := TRegistry . skapa ; prova reg . RootKey := HKey_Current_User ; om reg . OpenKey ( 'SoftwareMyCompany' , sant ) börjar sedan reg . WriteString ( 'Filnamn' , Redigera1 . Text ) ; slut ; äntligen reg . Gratis ; slut ; slut ;

Bra exempel (Borland Delphi)

I det här fallet skulle det vara bättre att omstrukturera affärslogiken (i det här exemplet lagrar filnamnet i registret) till en separat klass.

typ TPreferences = class private FFilename : String ; procedure SetFilename ( const Value : String ) ; public property Filnamn : String read FFilename write SetFilename ; procedur Ladda ; procedur Spara ; slut ;

Och använd "Spara"-metoden för den här klassen från knappklickshanteraren:

procedur TForm1 . Button1Click ( Avsändare : TObject ) ; börja Inställningar . spara ; slut ; procedur TForm1 . Edit1Change ( Avsändare : TObject ) ; börja Inställningar . Filnamn := Redigera1 . text ; slut ;

Nu har detta problem blivit aktuellt i Visual C# ( Microsoft Visual Studio ) [4] .

Anteckningar

  1. AntiPattern (av Indranil Nandy, IIT Kharagpur  ) . Hämtad 2 oktober 2017. Arkiverad från originalet 5 mars 2016.
  2. Anders Toxboe. Användargränssnitts antimönster  . UI-mönster (5 februari 2009). Hämtad 11 september 2013. Arkiverad från originalet 18 augusti 2013.
  3. 1 2 George Stepanek. Software Programming Secrets: Why Projects Fail  14. Arkiverad från originalet den 12 mars 2016.
  4. 1 2 Vad man inte ska göra: Anti-Patterns and the Solutions  ( 26 april 2011). Arkiverad från originalet den 6 september 2013.
  5. Enterprise Integration Anti-Patterns #2 - Delade församlingar  (otillgänglig länk)

Litteratur

  • Bruce A. Tate, Bitter Java. ISBN 193011043X , 2002. "An early antipattern: The Magic Pushbutton" sida 54