Command Pattern)
Source code download
1. Concept
Encapsulate a request as an object so that you can parameterize the customer with different requests, queue requests or record request logs, and support cancelable operations.
2. Class Diagram
3. Call Code
Use objUse = new Use ();
This. listBox1.Items. Add (objUse. Do (new Model () {ID = "1", Name = "Operation 1"}, Action. Add ));
This. listBox1.Items. Add (objUse. Do (new Model () {ID = "2", Name = "Action 2"}, Action. Add ));
This. listBox1.Items. Add (objUse. Do (new Model () {ID = "3", Name = "Action 3"}, Action. Add ));
This. listBox1.Items. Add (objUse. Do (new Model () {ID = "4", Name = "Operation 4"}, Action. Add ));
This. listbox1.items. Add (objuse. Do (New Model () {id = "5", name = "action 5"}, action. Add ));
This. listbox1.items. Add (objuse. Do (New Model () {id = "6", name = "6 6"}, action. Add ));
This. listbox1.items. Add (objuse. Do (New Model () {id = "7", name = "action 7"}, action. Add ));
This. listbox1.items. Add (objuse. Do (New Model () {id = "8", name = "Action 8"}, action. Add ));
This. listbox1.items. Add (objuse. Do (New Model () {id = "9", name = "9 9"}, action. Add ));
This. listBox1.Items. Add (objUse. Do (new Model () {ID = "10", Name = "Action 10"}, Action. Add ));
This. listBox1.Items. Add (objUse. Undo (4); // Undo it four times
This. listBox1.Items. Add (objUse. Undo (2); // cancel twice
This. listBox1.Items. Add (objUse. Undo (1); // cancel once
4. output results
Source code download