Diff Method for Implementing Undo Stack of the Recent User Actions
Метод Diff для имплементации стека отмены недавних действий пользователя

A.L. MASYUK, Donetsk National Technical University
2017 Èlektronnoe modelirovanie  
Ìåòîä Diff äëÿ èìïëåìåíòàöèè ñòåêà îòìåíû íåäàâíèõ äåéñòâèé ïîëüçîâàòåëÿ Ðàññìîòðåíû íàèáîëåå ïîïóëÿðíûå â íàñòîÿùåå âðåìÿ ïàòòåðíû èìïëåìåíòàöèè ñòåêà îòìåíû íåäàâíèõ äåéñòâèé Memento è Command, ïðîàíàëèçèðîâàíû èõ äîñòîèíñòâà è íåäîñòàòêè. Ïðåäëîaeåí ìåòîä Diff, â êîòîðîì ñî÷åòàþòñÿ ïðåèìóùåñòâà îáîçíà÷åííûõ ïàòòåðíîâ ñ ïðîñòîòîé è óíèâåðñàëüíîñòüþ ðåàëèçàöèè. Äàííûé ìåòîä ïðîâåðåí íà ïðàêòèêå ïðè ðàçðàáîòêå âèçóàëüíîãî ðåäàêòîðà ãðàôîâ øàõòíûõ âåíòèëÿöèîííûõ ñåòåé è èõ ïàðàìåòðîâ, à òàêaeå â
more » ... äðóãèõ ïîäîáíûõ ïðèëîaeåíèÿõ. Äîêàçàíà åãî ýôôåêòèâíîñòü ïî òàêèì êðèòåðèÿì, êàê áûñòðîäåéñòâèå, ðàñõîä ïàìÿòè, òðóäîçàòðàòû íà ðåàëèçàöèþ. Ðîçãëÿíóòî íàéïîïóëÿðí³ø³ íà äàíèé ÷àñ ïàòåðíè ³ìïëåìåíòàö³¿ ñòåêó â³äì³íè íåùî-äàâí³õ ä³é Memento òà Command, ïðîàíàë³çîâàíî ¿õ ïîçèòèâí³ òà íåãàòèâí³ âëàñòèâîñò³. Çàïðîïîíîâàíî ìåòîä Diff, â ÿêîìó ïîºäíàíî ïåðåâàãè îçíà÷åíèõ ïàòåðí³â òà ïðîñòîòà ³ óí³âåðñàëüí³ñòü ðåàë³çàö³¿. Äàíèé ìåòîä ïðàêòè÷íî ïåðåâ³ðåíî ï³ä ÷àñ ðîçðîáêè â³çóàëüíîãî ðåäàêòîðà ãðàô³â øàõòíèõ âåíòèëÿö³éíèõ ìåðåae òà ¿õ ïàðàìåòð³â, à òàêîae â ³íøèõ ïîä³áíèõ ïðîãðàìàõ. Äîâåäåíî éîãî åôåêòèâí³ñòü çà òàêèìè êðèòåð³ÿìè, ÿê øâèäêîä³ÿ, ñïîaeèâàííÿ ïàì'ÿò³, âèòðàòè íà ðåàë³çàö³þ. Ê ë þ ÷ å â û å ñ ë î â à: âèçóàëüíîå ðåäàêòèðîâàíèå, ñòåê îòìåíû, ãðàôè÷åñêèé èíòåðôåéñ. áîëüøèíñòâå ñîâðåìåííûõ ïðîãðàìì, ðåàëèçóþùèõ èäåîëîãèþ âèçóàëüíîãî ðåäàêòèðîâàíèÿ ìîäåëåé äàííûõ, èñïîëüçóåòñÿ êîíöåïöèÿ ñòåêà îòìåíû íåäàâíèõ äåéñòâèé ïîëüçîâàòåëÿ. Ýòî çíà÷èòåëüíî îáëåã÷àåò ðåäàêòèðîâàíèå, òàê êàê ñ ïîìîùüþ òàêîãî ñòåêà ïîëüçîâàòåëü ìîaeåò ëåãêî îòìåíèòü îøèáî÷íûå äåéñòâèÿ. íàñòîÿùåå âðåìÿ ñòàíäàðòíûì ïîäõîäîì ê ðåàëèçàöèè äàííîé ôóíêöèè ÿâëÿþòñÿ äâà ïàòòåðíà ïðîåêòèðîâàíèÿ, Memento («Õðàíèòåëü») è Command («Êîìàíäà»), ñ ðàçëè÷íîé òðóäîåìêîñòüþ ðåàëèçàöèè è ýôôåêòèâíîñòüþ èñïîëüçîâàíèÿ ðåñóðñîâ êîìïüþòåðà [1, 2] . Ïàòòåðí Memento îñíîâàí íà ïîøàãîâîì çàïîìèíàíèè ñîñòîÿíèé ðåäàêòèðóåìîé ìîäåëè ïîñëå êàaeäîãî âûïîëíåííîãî ïîëüçîâàòåëåì äåéñò-
doi:10.15407/emodel.39.01.091 fatcat:rjbqln77yfesdkrvzzwcac6quy