创建一个管理对象的工厂
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApp.ClassDLL
{
public class ClassFactory
{
//或者来创建工厂,where 限定 T 必须继承IClassManager接口,new()表示子类必须具有无参构造函数
public static IClassManager CreateInstance<T>() where T : IClassManager,new()
{
Type type = typeof(T);
object obj = Activator.CreateInstance(type);
return obj as IClassManager;
}
}
}
所有类都是继承接口
public interface IClassManager
{
void Show();
}
以下是需要创建的类:
public class ClassA : IClassManager
{
public void Show()
{
Console.WriteLine("AAAAAAAA");
}
}
public class ClassB : IClassManager
{
public void Show()
{
Console.WriteLine("BBBB");
}
}
测试 方法
static void Main(string[] args)
{
ClassFactory.CreateInstance<ClassA>().Show();
ClassFactory.CreateInstance<ClassB>().Show();
Console.ReadKey();
}