设计模式--建造者模式(c#反射实现)

来源:互联网 发布:株洲数控编程工资待遇 编辑:程序博客网 时间:2024/06/09 14:31

建造者模式是一个很好玩儿的模式,反射机制是一个很巧妙的机制。研究了一下,觉得挺好玩儿的,放到这里来,以后看看,就一句有用的代码,不过是精髓啊!

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参数来调用实现建造者模式。

0 0
原创粉丝点击