建造者模式是一个很好玩儿的模式,反射机制是一个很巧妙的机制。研究了一下,觉得挺好玩儿的,放到这里来,以后看看,就一句有用的代码,不过是精髓啊!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Windows.Forms;
using System.Windows;
using System.Reflection;
namespace cmd_QQ
{
class Program
{
public static void Main(string[] args)
{
List<string> actionList = new List<string>();
actionList.Add("ClickInstallButton");
actionList.Add("ClickNextButton");
actionList.Add("ClickUpdateButton");
actionList.Add("ClickFinishButton");
actionList.Add("ClickFinishButton");
new Program().RunOperationList("main window", actionList);
}
//建造者模式
public void RunOperationList(string mainWnd,List<string> actionList)
{
try
{
foreach (var item in actionList)
{
//反射
this.GetType().GetMethod(item, BindingFlags.NonPublic | BindingFlags.Instance).Invoke(this, new string[] { mainWnd });
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void ClickInstallButton(string mainWnd)
{
Console.WriteLine("Click "+mainWnd+" install button");
}
private void ClickNextButton(string mainWnd)
{
Console.WriteLine("Click "+mainWnd+" next button.");
}
private void ClickFinishButton(string mainWnd)
{
Console.WriteLine("Click "+mainWnd+" finish button.");
}
private void ClickUpdateButton(string mainWnd)
{
Console.WriteLine("Click "+mainWnd+" next button.");
}
}
}
将调用方法根据传进来的actionlist参数来调用实现建造者模式。