posts - 12,comments - 0,trackbacks - 0
是实现抽象工厂的基础,也是实现抽象工厂的核心技术,通过它,可以动态创建一个你想要的对象.如下面的例子是演示如何动态创建ChineseName或EnglishName的实例


using System;
 2using System.Reflection;
 3namespace TestReflection
 4{
 5    class AXzhz_sReflectionExample
 6    {
 7        public static void Main()
 8        {
 9            IName name=AbstractFactory.GetName();
10            name.ShowName();
11        }

12    }

13
14    public class AbstractFactory
15    {
16        public static IName GetName()
17        {
18            //s的值以后从Web.config动态获取
19            //把s赋值为:TestReflection.EnglishName,将显示英文名
20            string s = "TestReflection.ChineseName";
21            IName name = (IName)Assembly.Load("TestReflection").CreateInstance(s);
22            return name;
23        }

24    }

25    
26    //声明一个接口,它有一个显示"名字"的功能
27    public interface IName
28    {
29        void ShowName();
30    }

31
32    //实现接口,显示中国名字
33    public class ChineseName : IName
34    {
35        public void ShowName()
36        {
37            Console.WriteLine("我叫AX!");
38            Console.ReadLine();
39        }

40    }

41
42    //实现接口,显示英国名字
43    public class EnglishName:IName
44    {
45        void IName.ShowName()
46        {
47            Console.WriteLine("My name is AXzhz!");
48            Console.ReadLine();
49        }

50    }

51}
posted on 2007-06-30 16:15 GuangMing Lan 阅读(336) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。