Sobes.tech
Junior — Middle

Kas saaksite anda näidet, millal ja kuidas süsteemi või komponendi eelmine olek taastatakse?

sobes.tech AI

Vastus AI-lt

Tagasi eelnevale süsteemi või komponendi olekule realiseeritakse sageli "Memento" mustri või transaktsioonides rollback mehhanismide abil.

Näide C#-s — oleku koopiate salvestamine muudatuste tagasi võtmiseks:

class Originator {
    public string State { get; set; }

    public Memento Save() {
        return new Memento(State);
    }

    public void Restore(Memento memento) {
        State = memento.State;
    }
}

class Memento {
    public string State { get; }
    public Memento(string state) {
        State = state;
    }
}

// Kasutus:
var originator = new Originator();
originator.State = "Seisund 1";
var saved = originator.Save();

originator.State = "Seisund 2";

// Tagasi eelnevale seisundile
originator.Restore(saved);
Console.WriteLine(originator.State); // Kuvab "Seisund 1"

See lähenemine on kasulik, kui on vaja tühistada muudatused või rakendada "undo" funktsiooni.