设计模式-简单工厂模式(Simple Factory Pattern)

简单工厂模式

在GOF的23中设计模式一书中没有包含简单工厂模式。实际上简单工厂模式是工厂类最简单的形式(与工厂方法模式或抽象工厂模式相比)。 换句话说,在简单的工厂模式中,我们有一个工厂类,它有一个方法,根据给定的输入返回不同类型的对象。

示例代码

/// <summary>
/// 用户类型
/// </summary>
public enum UserType
{
    Normal,
    Supper
}

/// <summary>
/// 用户抽象类
/// </summary>
public abstract class User
{
    public abstract void Read();
    public abstract void Write();
}

/// <summary>
/// 普通用户
/// </summary>
public class Normaluser : User
{
    public override void Read()
    {
        Console.WriteLine("Normaluser Read ...");
    }

    public override void Write()
    {
        Console.WriteLine("Normaluser Permission Denied.");
    }
}

/// <summary>
/// 超用户
/// </summary>
public class Superuser : User
{
    public override void Read()
    {
        Console.WriteLine("Superuser  Read...");
    }

    public override void Write()
    {
        Console.WriteLine("Superuser Write...");
    }
}

/// <summary>
/// 用户对象创建工厂
/// </summary>
public class UserFactory
{
    public static User Create(UserType t)
    {
        switch (t)
        {
            case UserType.Normal:
                return new Superuser();
            case UserType.Supper:
                return new Normaluser();
            default:
                return null;
        }
    }
}

//-------------------------------------------------------
var nUser = UserFactory.Create(UserType.Normal);
nUser.Read();
nUser.Write();
var sUser = UserFactory.Create(UserType.Supper);
sUser.Read();
sUser.Write();

posted @ 2022-03-11 15:27  壮哈苗  阅读(39)  评论(0编辑  收藏  举报