Graafiset toimittajat, kuten Photoshop, GIMP ja monet piirustussovellukset luottavat voimakkaasti peruutuksiin ja redotoimintoihin parantaakseen käyttäjäkokemusta. Näiden ominaisuuksien tehokas toteuttaminen voi olla haastavaa, varsinkin kun käsitellään monimutkaisia toimintoja. Yksi tehokas suunnittelumalli hallitsemaan undo/redo-toimintoja on komentokaavio.

Komentokaavion ymmärtäminen

Komentokaavio tiivistää pyynnön objektina, jolloin asiakas voidaan parametrisoida jonottaen, pyyntöineen ja toiminnoineen. Se poistaa katkoksen kohteesta, joka vetoaa operaatioon siitä, joka osaa suorittaa sen. Tämä erottelu tekee peruuntumisen ja uudelleenkirjoittamisen johtamisesta yksinkertaista.

Peru/uudelleenaseta komentokaavio

Graafisessa editorissa jokainen käyttäjä voi toimia komentokohteena, kuten viivan piirtäminen, suodattimen käyttäminen tai esineen siirtäminen. Jokainen komento toteuttaa käyttöliittymän, jossa käytetään esimerkiksi []eksekoitoksi()[[] ja []undo()[[]]. Kun käyttäjä suorittaa toiminnon, komento suoritetaan ja tallennetaan historiapinoon.

Voit perua toiminnan, sovellus ponnahtaa viimeisen komennon historian pinosta ja kutsuu sen []undo()[ menetelmää. Uudelleenkirjoittaaksesi komento suoritetaan uudelleen ja työnnetään takaisin peruun pinoon. Tämä lähestymistapa mahdollistaa puhtaan ja ylläpidettävissä olevan tavan hallita käyttäjän toimintoja.

Esimerkki työnkulusta

  • Käyttäjä suorittaa toimintaa, kuten muotopiirtämistä.
  • Järjestelmä luo vastaavan komento-objektin.
  • Komento execute()[ -menetelmää kutsutaan muutoksen soveltamiseksi.
  • Komento tallennetaan peruuntumispinoon.
  • Kun peruutus käynnistetään, järjestelmä hakee viimeisen komennon ja puhelut undo()[.
  • Jos tarvitaan uudelleen, komento suorittaa() -menetelmä kutsutaan uudelleen, palauttaa toiminta.

Edut käyttää komentokaavion

  • Modulaarinen suunnittelu: jokainen komento tiivistää oman logiikkansa.
  • Helppo laajentaa: uusia komentoja voidaan lisätä muuttamatta olemassa olevaa koodia.
  • Selkeä peruminen/redon hallinta: toimintahistoria säilyy.
  • Tukee monimutkaisia toimintoja: komposiitit voivat ryhmitellä useita toimintoja.

Johtohahmo tarjoaa vankan ja joustavan kehyksen graafisten editorien peruuntumis- ja redoominaisuuksien toteuttamiseen. Kineyttämällä toiminnot objekteina kehittäjät voivat luoda ylläpidettävissä olevia ja skaalautuvia sovelluksia, jotka parantavat käyttäjäkokemusta.