抽象工厂模式+反射
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);
}
}
}
代码度量
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(); } }
相关文章推荐
- ajax同步与异步
- Interactive plotting with rbokeh
- 防止重复提交
- Mysql 修改默认端口
- 应用之星:新版本上线有礼 大家一起来“找茬”
- IOS清理缓存的几种方法
- 字段值的串连
- API
- jquery ajax 传动态值(错误试调)
- Spring学习笔记(17)----使用Spring注解方式管理事务
- 设置 Xcode 自动生成代码片段
- MongoDB(三)mongoDB下载和安装
- mysql 常用
- 4、集合类型
- 结构型模式7之2-Adapter适配器模式例子理解
- android studio插件收集
- UIScrollView头文件学习
- 七问“互联网+保险”:竞争力、核心价值何在?
- andorid jni入门教程一之helloworld
- KVC