public void AcceptVisitor(EmployeeCollection employees)
        {
            //TODO: 重构:可以放入缓存,IEmployeeVisitor可以按参数传入,提取公共方法
            var assemblies = AppDomain.CurrentDomain.GetAssemblies();

            var visitorList = new List <Type>();

            foreach (var a in assemblies)
            {
                var tempList = a.GetTypes();
                foreach (var t in tempList)
                {
                    if (typeof(IEmployeeVisitor).IsAssignableFrom(t) && !t.IsInterface)
                    {
                        visitorList.Add(t);
                    }
                }
            }

            foreach (var v in visitorList)
            {
                var instance = Activator.CreateInstance(v);
                employees.Accept(instance as IVisitor);
            }
        }
 public void AcceptReflectionVisitor(EmployeeCollection employees)
 {
     employees.Accept(new EmployeeVisitor());
 }