反射工厂与泛型工厂
反射工廠:
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Reflection;
namespace?工廠模式
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????交通工具?a?=?new?由工具類型產生工具(typeof(卡車));
????????????a.創建交通工具();
????????????交通工具?b?=?new?由工具類型產生工具(typeof(轎車));
????????????b.創建交通工具();
????????????Console.Read();
????????}
????}
????interface?交通工具
????{
????????void?創建交通工具();
????}
????class?由工具類型產生工具?:?交通工具
????{
????????Type?工具類型;
????????public?由工具類型產生工具(Type?工具類型)
????????{
????????????this.工具類型?=?工具類型;
????????}
????????public?void?創建交通工具()
????????{
????????????object?_obj?=?Activator.CreateInstance(工具類型);
????????}
????}
????class?卡車
????{
????????public?卡車()
????????{
????????????Console.WriteLine("卡車");
????????}
????}
????class?轎車
????{
????????public?轎車()
????????{
????????????Console.WriteLine("轎車");
????????}
????}
} 重構為泛型工廠:
using?System;
using?System.Collections.Generic;
using?System.Text;
//using?System.Reflection;
namespace?工廠模式
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????交通工具?a?=?new?泛型工廠<卡車>();
????????????a.創建交通工具();
????????????交通工具?b?=?new?泛型工廠<轎車>();
????????????b.創建交通工具();
????????????Console.Read();
????????}
????}
????interface?交通工具
????{
????????void?創建交通工具();
????}
????class?泛型工廠<工具類型>?:?交通工具?where?工具類型:?new()
????{
????????public?泛型工廠()
????????{?}
????????public?void?創建交通工具()
????????{
????????????工具類型?工具?=?new?工具類型();
????????}
????}
????class?卡車
????{
????????public?卡車()
????????{
????????????Console.WriteLine("卡車");
????????}
????}
????class?轎車
????{
????????public?轎車()
????????{
????????????Console.WriteLine("轎車");
????????}
????}
}
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Reflection;
namespace?工廠模式
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????交通工具?a?=?new?由工具類型產生工具(typeof(卡車));
????????????a.創建交通工具();
????????????交通工具?b?=?new?由工具類型產生工具(typeof(轎車));
????????????b.創建交通工具();
????????????Console.Read();
????????}
????}
????interface?交通工具
????{
????????void?創建交通工具();
????}
????class?由工具類型產生工具?:?交通工具
????{
????????Type?工具類型;
????????public?由工具類型產生工具(Type?工具類型)
????????{
????????????this.工具類型?=?工具類型;
????????}
????????public?void?創建交通工具()
????????{
????????????object?_obj?=?Activator.CreateInstance(工具類型);
????????}
????}
????class?卡車
????{
????????public?卡車()
????????{
????????????Console.WriteLine("卡車");
????????}
????}
????class?轎車
????{
????????public?轎車()
????????{
????????????Console.WriteLine("轎車");
????????}
????}
} 重構為泛型工廠:
using?System;
using?System.Collections.Generic;
using?System.Text;
//using?System.Reflection;
namespace?工廠模式
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????交通工具?a?=?new?泛型工廠<卡車>();
????????????a.創建交通工具();
????????????交通工具?b?=?new?泛型工廠<轎車>();
????????????b.創建交通工具();
????????????Console.Read();
????????}
????}
????interface?交通工具
????{
????????void?創建交通工具();
????}
????class?泛型工廠<工具類型>?:?交通工具?where?工具類型:?new()
????{
????????public?泛型工廠()
????????{?}
????????public?void?創建交通工具()
????????{
????????????工具類型?工具?=?new?工具類型();
????????}
????}
????class?卡車
????{
????????public?卡車()
????????{
????????????Console.WriteLine("卡車");
????????}
????}
????class?轎車
????{
????????public?轎車()
????????{
????????????Console.WriteLine("轎車");
????????}
????}
}
轉載于:https://www.cnblogs.com/luoboqingcai/archive/2006/06/04/417103.html
總結
- 上一篇: 注册表清理代码
- 下一篇: 哈哈,我的Blog开通了。。。