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

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

        }
    }


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值