前言:现在大部分优秀的编辑器都带有 "撤销/恢复"功能。这个功能就是相当于传说中的”后悔药“,方便大家随时切换到以前的某一个点。
为了寻找“后悔药”,我们也开始了该功能的探索之旅。本文主要考虑的方法是采用命令模式实现该功能的思路!
mweb
xcode
美图
一、设计模式的一些术语
1、设计模式定义
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
设计模式对一类问题提供了相应的解决方案,所以使用上与问题场景紧密结合。
2、设计原则
单一职责原则
一个类只做一件事,引起它变化的原因只有一个。
尽量避免修改一个功能时,影响太多其他的东西,这个原则的划分细粒度是一个难点,只能通过工作经验的积累才能过更好的应用
开闭原则
即对扩展开放,对修改关闭
提供良好的可扩展性,维护性。比如:创建一个图形基类,再创建一个方形,圆形,如果要新增别的图形,只需要新增一个类就要,不影响其他现有的功能和代码
里氏代换原则
即子类可以代替父类的全部功能。反过来就不行
比如写了一个鸟类,有会飞的功能,再写一个鸵鸟,集成这个鸟类,会飞的功能,就违反了这个原则
依赖倒转原则
即高层代码不应该依赖于底层代码,而应该依赖于接口,即面向接口编程。
我们的pc电脑,在设计USB 模块的时候,应该是要遵循usb2.0,3.0的接口编程,而不是为具体的u 盘,或者厂家的u 盘做专门的设计
接口隔离原则
使用多个隔离的接口,比使用单个接口要好。
降低耦合,方便维护,避免,集成后,执行很多不用的方法
合成/聚合复用原则