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

来源:互联网 发布:游戏算法书籍 编辑:程序博客网 时间:2024/05/20 06:24

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 角色 = 角色工厂.创建角色(序号);        }    }


 

 

阅读全文
1 0
原创粉丝点击