简单工厂

定义

提供一个创建对象实例的功能,而无需关心具体实现。创建实例的类型可以是接口、抽象类,也可以是具体的类。

代码示例

/// <summary>
/// 工厂类,用来创建api对象
/// </summary>
public class Factory
{
    public static IApi CreateApi(int condition)
    {
        IApi api = null;
        if(condition==1)
            api=new Api1();
        else if(condition==2)
            api=new Api2();
        return api;
    }
}

public interface IApi
{
    void Operation(string s);
}

public class Api1 : IApi
{
    public void Operation(string s)
    {
        Console.WriteLine(s);
    }
}

public class Api2 : IApi
{
    public void Operation(string s)
    {
        Console.WriteLine(s);
    }
}

创建一个简单工厂对象,让简单工厂来负责创建接口对象。 然后让客户端通过工厂来获取 接口对象, 而不再由客户端自己去创建接口的对象了。

静态工厂

使用简单工厂的时候,通常不用创建简单工厂类的类实例,没有创建实例的必要。因此可以把简单工厂类实现成一个工具类,直接使用静态方法就可以了。也就是说简单工厂的方法通常是静态的,所以也被称为静态工厂。

可配置的简单工厂

在简单工厂的防范里面可以使用反射,当然也可以使用IoC/DI来实现。

posted @ 2023-05-31 12:52  huihui_teresa  阅读(23)  评论(0)    收藏  举报