Sobes.tech
Junior — Middle

Μπορείτε να δώσετε ένα παράδειγμα όταν πραγματοποιήθηκε αναστροφή ή ακύρωση μιας προηγούμενης ενέργειας σε ένα πρόγραμμα ή σύστημα;

sobes.tech AI

Απάντηση από AI

Ένα παράδειγμα αναίρεσης σε ένα πρόγραμμα C# είναι η χρήση του μοτίβου "Εντολή" με υποστήριξη για αναίρεση (undo). Για παράδειγμα, σε έναν επεξεργαστή κειμένου:

public interface ICommand
{
    void Execute();
    void Undo();
}

public class InsertTextCommand : ICommand
{
    private StringBuilder _text;
    private string _insertedText;
    private int _position;

    public InsertTextCommand(StringBuilder text, string insertedText, int position)
    {
        _text = text;
        _insertedText = insertedText;
        _position = position;
    }

    public void Execute()
    {
        _text.Insert(_position, _insertedText);
    }

    public void Undo()
    {
        _text.Remove(_position, _insertedText.Length);
    }
}

Εδώ, η μέθοδος Undo αναιρεί την ενέργεια εισαγωγής κειμένου, αποκαθιστώντας την κατάσταση πριν την εκτέλεση της εντολής. Αυτή η προσέγγιση χρησιμοποιείται συχνά για την υλοποίηση της λειτουργίας αναίρεσης σε εφαρμογές και συστήματα.