Magisk knap

En  magisk trykknap er et anti - mønster , der opstår, når der mangler abstraktion, når mange forskellige handlinger er klumpet sammen på det forkerte sted, for eksempel i en knap-klik-handler, i stedet for at blive fordelt på de relevante klasser og funktioner. Typisk opstår problemet i visuelle udviklingsmiljøer [1] [2] , når programmøren først tegner brugergrænsefladen og derefter skriver forretningslogikken i autogenererede metoder , normalt en knap-klik-håndteringsmetode som "OK" [3] .

Problemer med dette antimønster:

Nogle gange forekommer lignende anti-mønstre også i kode på serversiden, såsom i ASP.NET Web Forms [5] .

Dårligt eksempel (Borland Delphi)

procedure TForm1 . Button1Click ( Afsender : TObject ) ; varreg : TRegistry ; _ start reg := TRegistry . skabe ; prøv reg . RootKey := HKey_Current_User ; hvis reg . OpenKey ( 'SoftwareMyCompany' , sand ) og start derefter reg . WriteString ( 'Filnavn' , Rediger1 . Tekst ) ; ende ; endelig reg . Gratis ; ende ; ende ;

Godt eksempel (Borland Delphi)

I dette tilfælde ville det være bedre at omstrukturere forretningslogikken (i dette eksempel lagring af filnavnet i registreringsdatabasen) i en separat klasse.

type TPreferences = class private FFilename : String ; procedure SetFilename ( const Value : String ) ; public property Filnavn : Streng læs FFilename skriv SetFilename ; procedure Load ; procedure Gem ; ende ;

Og brug "Gem"-metoden for denne klasse fra knap-klik-handleren:

procedure TForm1 . Button1Click ( Afsender : TObject ) ; begynde præferencer . gemme ; ende ; procedure TForm1 . Edit1Change ( Afsender : TObject ) ; begynde præferencer . Filnavn := Rediger1 . tekst ; ende ;

Nu er dette problem blevet relevant i Visual C# ( Microsoft Visual Studio ) [4] .

Noter

  1. AntiPattern (af Indranil Nandy, IIT Kharagpur  ) . Hentet 2. oktober 2017. Arkiveret fra originalen 5. marts 2016.
  2. Anders Toxboe. Brugergrænseflade Anti-  mønstre . UI-mønstre (5. februar 2009). Hentet 11. september 2013. Arkiveret fra originalen 18. august 2013.
  3. 1 2 George Stepanek. Software Programmering Secrets: Why Projects Fail  14. Arkiveret fra originalen den 12. marts 2016.
  4. 1 2 Hvad skal man ikke gøre: Anti-Patterns and the Solutions  ( 26. april 2011). Arkiveret fra originalen den 6. september 2013.
  5. Enterprise Integration Anti-Patterns #2 - Shared Assemblys  (utilgængeligt link)

Litteratur

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