return true; } public void Redo() { } public void Execute() { int reIndex =redolist.Count - 1; if (reIndex >= 0){
Command cmd = (Command)redolist[reIndex]; cmd.Redo();
UndoComd.redolist = new ArrayList(); UndoComd.redolist.Add(cmd); redolist.Remove(reIndex);}}} 14、 试比较和分析中介者模式和观察者模式之间的相似性和差异性?两者是否能够相
互转化?
答:中介者模式和观察者模式的区别是,前者应用于多对多杂乱交互行为的统筹处理,后者应用于一(多)对多关系的灵活定制。对于本例来说,集中处理后还需要分散处理,那么后半阶段的处理过程可以应用观察者模式。对于前一节的例子来说,如果有多个主体角色和多个观察者进行多对多通讯的话,也可以应用中介者模式来统筹这个多对多的过程(大家可以自己尝试修改前一节的实例来应用中介者模式)。 15、 使用访问者模式对12题中的学生信息进行报到。 答:public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable. /// </summary>
private http://www.77cn.com.cnponentModel.Container components = null; private Student[] empls; private Student empl ;
private System.Windows.Forms.Button btCompute; private System.Windows.Forms.ListBox lsVac;
public Form1() {
InitializeComponent(); init(); }
private void init() { int i = 0;
empls = new Student [7];
empls[i++] = new Student("Susan Bear", "GIS",80, "大一"); empls[i++] = new Student("Adam Gehr", "GIS", 90, "大四"); empls[i++] = new Student("Fred Harris", "GIS", 85, "大二"); empls[i++] = new Student("David Oakley", "GIS", 82, "大三");