用泛型实现的工厂方法

    技术2022-05-20  57

       public abstract class Log      {        public abstract void Write();    }

        public class EventLog : Log    {        public override void Write()        {            Console.WriteLine("EventLog Write Success!");        }    }

        public class FileLog : Log    {        public override void Write()        {            Console.WriteLine("FileLog Write Success!");        }    }

     

     

     

     

     

        public  class LogFactory<T>  where  T:Log ,  new()  // T 是约束为任何实现log类型的,且有无参数的构造方法的类型    {        public Log Create(T ty)        {            Log x= new T();            return x;        }    }

             public class App    {        public static void Main(string[] args)        {            LogFactory<FileLog> factory = new LogFactory<FileLog>();

                Log log = factory.Create();

                log.Write();

                Console.ReadLine();        }    }


    最新回复(0)