• 简单工厂


    本简单工厂,

    将实体类名字写入配置文件,工厂类通过反射穿件实体

    主方法

    class Program
        {
            static void Main(string[] args)
            {
                IPeople p = Factory.CreateInstanceReflect();
                p.Say();
    
                Console.WriteLine("-------------");
    
                IPeople p1 = new Factory().CreateInstanceReflect1();
                p1.Say();
    
                Console.ReadKey();
            }
        }

    工厂方法

    public class Factory
        {
            public static IPeople CreateInstanceReflect()
            {
                string config = System.Configuration.ConfigurationSettings.AppSettings["InstanceReflect"];
                string assemblyName=config.Split(',')[0];
                string typeName = config.Split(',')[1];
                return (IPeople)Activator.CreateInstance(assemblyName, typeName).Unwrap();
            }
    
            public IPeople CreateInstanceReflect1()
            {
                string config = System.Configuration.ConfigurationSettings.AppSettings["InstanceReflect1"];
    
                return (IPeople)this.GetType().Assembly.CreateInstance(config); ;
            }
        }

    配置文件

      <appSettings>
        <add key="InstanceReflect" value="简单工厂模式,简单工厂模式.Teacher"></add>
        <add key="InstanceReflect1" value="简单工厂模式.Student"></add>
      </appSettings>

    其他基础类

      namespace 简单工厂模式
    {
      public interface IPeople
        {
            void Say(); 
        }
    
        public class Student:IPeople
        {
            public void Say()
            {
                Console.WriteLine("创建了学生");
            }
        }
    
    
        public class Teacher :IPeople
        {
            public void Say()
            {
                Console.WriteLine("创建了老师");
            }
        }
    }
  • 相关阅读:
    手势
    ios提示框,自动消失
    UITableView
    UIAlertView
    微信公众号主页链接
    试用avalon2.0
    VirtualPathProvider的使用
    代码暂存 [获取二唯码并识别保存二唯码]
    提交数据url太长导致提交失败
    打通前后台
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/7062196.html
Copyright © 2020-2023  润新知