您的位置:首页 > 其它

软件开发设计模式(三)—简单工厂模式

2017-08-14 14:44 183 查看
SimpleFactory简单工厂            关键字:多选一

问题:
客户在使用对象时,面临在多个类型中选择一个来创建对象,具体对象的类型可能有变化
意图:定义一个全局的工厂类,负责类型的选择及对象的创建初始化,从而实现将创建与表示分离
适用性:

            • 当一个类不知道它所必须创建的对象的类的时候。

            • 当类将创建对象的职责委托给一个全局创建点,客户不需要关心具体类型,需要对象的时候,找全局创建点即可.

结构:
 


代码实例:
创建一个角色类
  public abstract class 角色
{

}
角色类型有很多种,假设有ABC三种角色,分别建继承角色的子类
 public class 角色A : 角色
{

}
public class 角色B : 角色
{
}
public class 角色C : 角色
{
}

创建角色工厂类
  public class 角色工厂
{
public static 角色 创建角色(string 序号)
{
var type = Type.GetType("SimpleFactory.角色" + 序号);
return Activator.CreateInstance(type) as 角色;
}
}
测试
 public class 客户
{
public void Test()
{
var 角色 = 角色工厂.创建角色("B");
}
}
class Program
{
static void Main(string[] args)
{
//表示(使用)
Console.WriteLine("请输入要创建角色的序号?");
var 序号 = Console.ReadLine();
var 角色 = 角色工厂.创建角色(序号);

}
}


 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: