2015年8月23日 星期日

Implementation of Undo/Redo on Android



    最近公司的產品拼貼趣想做Undo(上一步)和Redo(下一步)的功能,因為使用者常常不小心就把拼好的作品誤移,然後又很難移回來,其中一個發想就是參考Photoshop可以做Undo/Redo(還有其他發想例如把某個Layer鎖住的功能),聽起來對現在的code非常有挑戰,但還是花了一個下午做出第一版Prototype(只支援Undo),看起來會動只是畫面會狂閃;後來iOS的同事才跟我介紹他們實作的方式 - UndoManager

    秀了幾行code給我看後,感覺這個設計架構根本就超好,結果Android內建沒有這套實作,結果它藏在Android Framework裡,而且命名規則也很iOS(每一個Command叫做Operation),感覺是給內部UI Widget用的功能。

    解決這類型問題也有常用的Design Pattern,在SO找到這篇推薦Command Pattern,有空再來消化這個Pattern的其他應用方式。


沒有留言:

張貼留言