您的位置:首页 > 其它

抽象工厂模式+反射

2016-02-18 14:15 323 查看
类图



代码度量



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Reflection;
using System.Configuration;

namespace 抽象工厂反射版
{
/// <summary>
/// 生产工厂
/// </summary>
class Factory
{
private readonly static string AssemblyName = "抽象工厂反射版";
private readonly static string CarName = ConfigurationSettings.AppSettings["CarName"];
private readonly static string PhoneName = ConfigurationSettings.AppSettings["PhoneName"];
/// <summary>
/// 生产汽车流水线
/// </summary>
/// <returns></returns>
public static ICar CreateCar()
{

string typeName = AssemblyName + "." + CarName;
return (ICar)Assembly.Load(AssemblyName).CreateInstance(typeName);
}
/// <summary>
/// 生产手机流水线
/// </summary>
/// <returns></returns>
public static IPhone CreatePhone()
{
string typeName = AssemblyName + "." + PhoneName;
return (IPhone)Assembly.Load(AssemblyName).CreateInstance(typeName);
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="CarName" value="BMWCar"/>
<add key ="PhoneName" value="ApplePhone"/>
</appSettings>
</configuration>

static void Main(string[] args)
{
//界面逻辑代码
ICar car1 = Factory.CreateCar();
ICar car2 = Factory.CreateCar();
car1.Introduce();
car2.Introduce();

IPhone phone1 = Factory.CreatePhone();
IPhone phone2 = Factory.CreatePhone();
phone1.Call();
phone2.Call();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: