简单工厂模式

   创建一个工厂类,对实现了同一个接口的多个类进行实例的创建。

//抽象类 人
public abstract class HuMan
{
        public abstract void Talk();
}
//黑人实现类
public class BlackHuman : HuMan
{
    public override void Talk()
    {
        Console.WriteLine("I am BlackHuman");
    }
}
//白人实现类
public class WhiteHuman : HuMan
{
    public override void Talk()
    {
        Console.WriteLine("I am WhiteHuman");
    }
}
/// <summary>
/// 简单工厂
/// </summary>
public static class HumanFactory
{
    public static HuMan CreateHuman(HumanEnum humanEnum)
    {
        HuMan huMan = null;
        switch (humanEnum)
        {
            case HumanEnum.Black:
                huMan = new BlackHuman();
                break;
            case HumanEnum.White:
                huMan = new WhiteHuman();
                break;
            default:
                throw new NullReferenceException();
        }
        return huMan;
    }
}

//客户端调用
//创建一个白人
var whiteHuman1 =  SimpleFactory.CreateHuman(HumanEnum.White);
whiteHuman1.Talk();
//创建一个黑人
var blackHuman1 = SimpleFactory.CreateHuman(HumanEnum.Black);
blackHuman1.Talk();
View Code

相关文章: