首页 > 代码库 > 简单工厂
简单工厂
本简单工厂,
将实体类名字写入配置文件,工厂类通过反射穿件实体
主方法
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=http://www.mamicode.com/"简单工厂模式,简单工厂模式.Teacher"></add> <add key="InstanceReflect1" value=http://www.mamicode.com/"简单工厂模式.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("创建了老师"); } } }
简单工厂
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。