您的位置:首页 > 其它

设计模式—抽象工厂

2013-11-28 15:20 337 查看
定义

抽象工厂是OOP的体现,抽象出行为(接口),面向接口编程

现实

汽车厂的冲压设备,冲压前车门,后车门只需要修改冲压设备的冲头(前车门冲压头,后车门冲压头),只需修改配置,调出对应的冲头

例子



AbstractFactory:抽象工厂类

ISpeak:speak方法,说明是能说的对象

Chinese:说中国话

public class AbstractFactory
{
/// <summary>
/// 获取能说话的对象
/// </summary>
/// <returns></returns>
public static ISpeak GetCanSpeakObject()
{
var speakTypeName= ConfigurationManager.AppSettings.Get("type");
var speakType=  Type.GetType(speakTypeName);
var assembly = Assembly.GetCallingAssembly();
return (ISpeak)assembly.CreateInstance("大话设计模式.American");
}
}


namespace 大话设计模式
{
public interface ISpeak
{
string Speak();
}
}


namespace 大话设计模式
{
public class American : ISpeak
{
public string Speak()
{
return "我说英语!";
}
}
}


namespace 大话设计模式
{
public class Chinese : ISpeak
{
public string Speak()
{
return "我说中国话!";
}
}
}


namespace 大话设计模式
{
public class Japanese : ISpeak
{
public string Speak()
{
return "亚美爹!";
}
}
}


如果现在这个系统给中国用就实现Chinese对象,以次类推

工厂类:通过读取配置文件,实例化对应的实体对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: