详解command设计模式,解耦操作和回滚( 二 )

class RedoableMenu(MenuItemBaseClass):def __init__(self, command):self_command = commanddef pressed(self):self._command.execute()def unpress(self):self._command.undo()这样我们的UI就和command解耦了 , 如果我们想要实现不同的可以回滚的功能 ,只需要实现不同的command创建实例就可以了 。 对于整个UI的使用没有任何影响 , UI组件当中用到的所有类都是统一的 。 可能在Python这种弱类型语言当中看不太出来 , 因为我们一个list说是menu基类的list , 但是其实装什么都行 。 但如果是强类型语言 , 那么这种抽象和封装就是非常有必要的了 。
今天的文章就到这里 , 衷心祝愿大家每天都有所收获 。 如果还喜欢今天的内容的话 , 请来一个三连支持吧~(点赞、关注、转发)
- END -
本文始发于公众号:TechFlow , 求个关注


推荐阅读