Maaginen painike

Maaginen painike on anti -  kuvio , joka ilmestyy, kun abstraktio puuttuu, kun monet erilaiset toiminnot niputetaan yhteen väärään paikkaan, esimerkiksi painikkeen napsautuskäsittelijään, sen sijaan, että se jakautuisi sopivien luokkien ja funktioiden kesken. Tyypillisesti ongelma ilmenee visuaalisissa kehitysympäristöissä [1] [2] , kun ohjelmoija piirtää ensin käyttöliittymän ja sitten kirjoittaa liiketoimintalogiikan automaattisesti luoduilla menetelmillä , yleensä painikkeen napsautuksen käsittelymenetelmällä, kuten "OK" [3] .

Ongelmia tämän antimallin kanssa:

Joskus samanlaisia ​​anti-malleja esiintyy myös palvelinpuolen koodissa, kuten ASP.NET Web Formsissa [5] .

Huono esimerkki (Borland Delphi)

menettely TForm1 . Button1Click ( Lähettäjä : TObject ) ; varreg : Trekisteri ; _ begin reg := TRegistry . luoda ; kokeile reg . RootKey := HKey_Current_User ; jos reg . OpenKey ( 'SoftwareMyCompany' , true ) ja aloita sitten reg . WriteString ( 'Tiedostonimi' , Edit1 . Teksti ) ; loppu ; vihdoin reg . Ilmainen ; loppu ; loppu ;

Hyvä esimerkki (Borland Delphi)

Tässä tapauksessa liikelogiikka (tässä esimerkissä tiedostonimen tallentaminen rekisteriin) olisi parempi heijastaa erilliseen luokkaan.

type TPreferences = luokka yksityinen FFilename : Merkkijono ; menettely SetFilename ( const Arvo : Merkkijono ) ; julkinen omaisuus Tiedostonimi : Merkkijono lue FFilename kirjoittaa SetFilename ; menettely Load ; menettely Tallenna ; loppu ;

Ja käytä tämän luokan "Tallenna"-menetelmää painikkeen napsautuskäsittelijästä:

menettely TForm1 . Button1Click ( Lähettäjä : TObject ) ; Aloita Asetukset . säästää ; loppu ; menettely TForm1 . Edit1Change ( Lähettäjä : TObject ) ; Aloita Asetukset . Tiedostonimi := Muokkaa1 . teksti ; loppu ;

Nyt tästä ongelmasta on tullut ajankohtainen Visual C# :ssa ( Microsoft Visual Studio ) [4] .

Muistiinpanot

  1. AntiPattern (tekijä Indranil Nandy, IIT Kharagpur  ) . Haettu 2. lokakuuta 2017. Arkistoitu alkuperäisestä 5. maaliskuuta 2016.
  2. Anders Toxboe. Käyttöliittymän anti  -kuviot . Käyttöliittymämallit (5. helmikuuta 2009). Haettu 11. syyskuuta 2013. Arkistoitu alkuperäisestä 18. elokuuta 2013.
  3. 1 2 George Stepanek. Ohjelmiston ohjelmoinnin salaisuudet: Miksi projektit epäonnistuvat  14. Arkistoitu alkuperäisestä 12. maaliskuuta 2016.
  4. 1 2 Mitä ei pidä tehdä: Anti-Patterns and the Solutions  ( 26. huhtikuuta 2011). Arkistoitu alkuperäisestä 6. syyskuuta 2013.
  5. Enterprise Integration Anti-Patterns #2 - Jaetut kokoonpanot  (linkki, jota ei voi käyttää)

Kirjallisuus

  • Bruce A. Tate, katkera Java. ISBN 193011043X , 2002. "Varhainen antikuvio: Taikapainike" sivu 54