Memento

Mit dem Memento-Pattern kann man ohne die Kapselung zu verletzen, den internen Zustand eines Objekts erfassen und externalisieren, so dass das Objekt später wieder in diesen Zustand versetzt werden kann.

Klassendiagramm

Implementierung

Originator.cs
public class Originator
{
    private string _state = "";

    public void SetState(string state)
    {
        _state = state;
    }

    public string GetState()
    {
        return _state;
    }

    public Memento CreateMemento()
    {
        return new(_state);
    }

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

Beispiel

Klassendiagramm

Implementierung

TextBox.cs
public class TextBox
{
    private string _text = "";

    public void SetText(string text)
    {
        _text = text;
    }

    public string GetText()
    {
        return _text;
    }

    public TextState Save()
    {
        return new(_text);
    }

    public void Restore(TextState textState)
    {
        _text = textState.GetText();
    }
}

Zuletzt aktualisiert