ASP.NET中的工厂模式

一、什么是工厂模式?

1.工厂模式就是定义一个用于创建对象的接口,让子类决定实例化哪一个类。

2.初始化封装。就是说在需求一个类的实例时,假如需要一个相同属性的实例,每次初始化的操作是一样的,用工厂模式就可以对初始化进行封装,简化操作。

工厂模式和上一篇的简单工厂模式(https://blog.csdn.net/Jie_Studio/article/details/88963624)差不多,就相当于对简单工厂的升级,也用一个小案例展示一下:

1.首先同样是定义一个食品的抽象类:


    /// 

    /// 食品的抽象类

    /// 

    public abstract class Food

    {

        // 输出在网上买了什么东西

        public abstract void Print();

    }

2.定义具体要实现的食品类:


    /// 

    /// 牛奶类

    /// 

    public class Milk : Food

    {

 

        public override void Print()

        {

            Console.WriteLine("一瓶牛奶!");

        }

 

    }

 

    /// 

    /// 辣条类

    /// 

    public class Spicystrips : Food

    {

 

        public override void Print()

        {

            Console.WriteLine("一包辣条");

        }

 

    }

3.定义一个零售工厂类:

    /// 
    /// 零售工厂类(工厂模式)
    /// 
    public abstract class FoodSimpleFactory
    {

        public abstract Food CreateFacory();

    }

4.定义的类别工厂:

    /// 
    /// 饮品类工厂
    /// 
    public class DrinkFactory : FoodSimpleFactory
    {

        public override Food CreateFacory()
        {

            return new Milk();

        }

    }

    /// 
    /// 零食类工厂
    /// 
    public class SnacksFactoyr : FoodSimpleFactory
    {

        public override Food CreateFacory()
        {

            return new Spicystrips();

        }

    }

5.最后通过客户端去调用:

    class Program
    {
        static void Main(string[] args)
        {

            //初始化工厂--饮品类
            FoodSimpleFactory foodfactory = new DrinkFactory();

            //牛奶
            Food food = foodfactory.CreateFacory();
            food.Print();

            Console.Read();

        }
    }

6.如果想改为零食类,只需要更改:

//初始化工厂--零食类

FoodSimpleFactory foodfactory = new SnacksFactoyr();

工厂模式的使用场景:

1.客户端不需要知道它所创建的对象的类。例子中我们不知道每个图片加载器具体叫什么名,只知道创建它的工厂名就完成了创建过程。

2.客户端可以通过子类来指定创建对应的对象。

你可能感兴趣的:(ASP.NET中的工厂模式)