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 მეთოდი ანულებს ტექსტის დამატების მოქმედებას და აღადგენს მდგომარეობას წინასწარ ბრძანების შესრულებამდე. ეს მიდგომა ხშირად გამოიყენება პროგრამებში და სისტემებში ანულირების ფუნქციის განსახორციელებლად.