設計模式——命令模式實現撤銷
總結一下工作中用到的這個設計模式,,看了下大話設計模式裡好像也有這個,,以後看到了在完善吧,,現在這個是專案要求實現一個撤銷功能,就跟我說用命令模式寫就行~聽簡單的~QAQ
然後看了很多關於命令模式的部落格,感覺我寫的應該差不多吧,,應該沒有理解錯,直接放程式碼
public class 命令模式 : MonoBehaviour
{
CommandManager comdMag = new CommandManager();
public int TestValue = 0;
// Start is called before the first frame update
void Start()
{
TestCommand testCommand = new TestCommand(TestValue);
comdMag.Excute(testCommand);
comdMag.Undo();
}
}
public interface ICommand
{
void Excute();
void Udon();
}
public class CommandManager
{
//這裡用Stack比較方便,但是Stack不知道怎麼限制數量,,還得從頭部去掉一個
public List<ICommand> comList = new List<ICommand>();
public void Excute(ICommand comd)
{
comd.Excute();
comList.Add(comd);
}
public void Undo()
{
var lastComd = comList[comList.Count - 1];
lastComd.Udon();
comList.RemoveAt(comList.Count - 1);
}
}
public class TestCommand : ICommand
{
int value;
public TestCommand(int value)
{
this.value = value;
}
public void Excute()
{
value = 10;
Debug.Log(value);
}
public void Udon()
{
value = 0;
Debug.Log(value);
}
}
當時是還有一個恢復功能,其實跟撤銷一樣的原理,你們肯定能自己寫出來的!!!(絕不是因為我懶不想寫)
相關文章
- 撤銷功能的實現——備忘錄模式(五)模式
- 撤銷功能的實現——備忘錄模式(四)模式
- 撤銷功能的實現——備忘錄模式(三)模式
- 撤銷功能的實現——備忘錄模式(二)模式
- 撤銷功能的實現——備忘錄模式(一)模式
- 設計模式實戰 - 命令模式設計模式
- Go語言實現設計模式之命令模式Go設計模式
- Command(命令)——物件行為型模式(通過Command設計模式實現WinForm表單維護的撤銷與重做功能)物件設計模式ORM
- 設計模式--命令模式設計模式
- js設計模式–命令模式JS設計模式
- Java設計模式——命令模式Java設計模式
- js設計模式--命令模式JS設計模式
- 設計模式(五):命令模式設計模式
- 設計模式之-命令模式設計模式
- 設計模式之命令模式設計模式
- Go 實現常用設計模式(九)模式Go設計模式
- 設計模式-Java實現單例模式設計模式Java單例
- 實踐GoF的23種設計模式:命令模式Go設計模式
- 設計模式-命令模式(Command)設計模式
- 設計模式系列 6– 命令模式設計模式
- Python 設計模式-命令模式Python設計模式
- JavaScript設計模式(七):命令模式JavaScript設計模式
- 簡說設計模式——命令模式設計模式
- Javascript設計模式之命令模式JavaScript設計模式
- Java設計模式(16)----------命令模式Java設計模式
- 極簡設計模式-命令模式設計模式
- GoLang設計模式08 - 命令模式Golang設計模式
- Python設計模式-命令模式Python設計模式
- JAVA設計模式之命令模式Java設計模式
- 大話設計模式—命令模式設計模式
- 《JavaScript設計模式與開發實踐》模式篇(6)—— 命令模式JavaScript設計模式
- git撤銷命令Git
- Java設計模式(22)命令模式(Command模式)Java設計模式
- Go 實現常用設計模式(二)策略模式Go設計模式
- Go 實現常用設計模式(三)策略模式Go設計模式
- Go 實現常用設計模式(九)代理模式Go設計模式
- 設計模式(python實現):觀察者模式設計模式Python
- 【php實現設計模式】之單例模式PHP設計模式單例