Kommentit
- Koukkutapa on abstraktin luokan konkreettinen menetelmä, joka voidaan ohittaa alaluokilla, mutta sillä on oletuskäyttäytyminen abstraktissa luokassa.
vastaus
Vastaukseni liittyy WordPressiin, joka on kirjoitettu PHP: ssä, mutta tämä on yleinen kehitysmekaniikka, joten sen ei pitäisi ”Sillä ei ole väliä, huolimatta siitä, että kirjoitit” python ”kysymyksesi otsikkoon.
Yksi hyvä esimerkki koukkujen käytöstä, sattumalta verkkokehityksessä, on WordPress -koukut .
Ne on nimetty asianmukaisesti, koska ne antavat mahdollisuuden ”kytkeytyä” tiettyihin ohjelman suorituksen kohtiin.
Joten Esimerkki: wp_head on ”toiminto”, joka lähetetään, kun WordPress-teemaa renderöidään, ja se on siinä osassa, jossa se tekee osan, joka ”s” <head>
-tunnisteiden sisällä. Sano, että haluat kirjoittaa laajennuksen, joka vaatii ylimääräisen tyylitaulukon, komentosarjan tai jotain, joka tavallisesti menee kyseisten tunnisteiden sisälle. Voit ”kytkeä” tähän toimintoon määrittelemällä toiminnon, jota kutsutaan, kun tämä toiminto lähetetään. Jotain tällaista:
add_action("wp_head", "your_function");
your_function()
voi olla jotain yksinkertaista:
function your_function() { echo "<link rel="stylesheet" type="text/css" href="lol.css" />"; }
Kun WordPress lähettää tämän toiminnon tekemällä jotain esimerkiksi do_action("wp_head");
, se huomaa, että your_function()
oli ”koukussa” kyseiseen toimintoon, joten se kutsuu kyseistä toimintoa ( ja välittää sille mahdolliset argumentit, kuten tietyn koukun dokumentaatiossa määritelty ).
Lyhyt tarina: Sen avulla voit lisätä lisätoimintoja ohjelman suorittamisen tietyissä kohdissa ”kiinnittymällä” noihin pisteisiin, useimmissa tapauksissa määrittämällä funktion takaisinsoitto.
vastaus
Kysymyksen taustasta riippuen vastaus tähän kysymykseen voi joskus olla niin yksinkertaista kuin koukut ovat yleensä toinen sana tapahtumankäsittelijälle, jota Blaenk antoi erinomaisen selityksen.
Tässä lauseessa on myös käyttötarkoituksia, kun pistät tapahtuman o r-koodi prosessiin, jossa ei muuten ole tapahtumia, kuten myyrät .
Kommentit
- Kiitos Bill, myyrät näyttävät .NET-käsitteeltä, joka on minulle täysin vieras. Voisitteko osoittaa minulle jotain pythonista tai php: tä tai jotain muuta yleisempää.
- Valitettavasti en ' älä käytä näitä kahta tarpeeksi asiantuntijan hakemiseen, mutta jos luen sitä oikein, uskon stackoverflow.com/questions/156230/… on samanlainen idea, josta keskustellaan, mutta myyrät voivat kiinnittää kootun kokoonpanon. Miniportin kuljettaja on toinen paikka, jossa koukku lauseita käytetään joskus. Huomautukseni oli enemmän, että " koukku " terminologiaa voidaan käyttää toisinaan joskus vanhemmissa MS-tekniikoissa, ehkä toista käyttöä ei ei koske myös pythonia.