C#工厂模式-工厂方法

简单工厂:

  工厂模式:简单工厂,工厂方法,抽象工厂三种.   工厂方法(力求简洁)

  工厂即为生产东西的地方.在C#也有这种模式,充分利用了面向对象语言的三大特征(多态,继承),简单工厂.工厂的功能就是生产,而生产些什么呢?一个工厂可以生产鞋子,生产衣服.它们所处的车间不一样,所以需要两个不同的类,这两个类继承工厂生产这个功能.(简单工厂)

  工厂方法,简单工厂的进阶版.那么对比简单工厂,工厂方法强在哪里?

  对比:简单工厂中只有工厂是抽象的,也就是说只有这个工厂只有这么一处可变的.工厂方法中,会有两处可变的,①工厂的抽象类②产品的抽象类.其次在工厂方法中产品的具体实现也是往后推,在简单工厂中产品实现是在工厂的抽象类中,在工厂方法中,产品的实现推到了产品的抽象类中.

  工厂方法的优点:能够很好的添加一样新产品,不用破坏逻辑,(简单工厂中,需要添加case语句),在工厂方法中再添加一个产品以及相对应的工厂即可

  介绍完毕,上干货

工厂接口

**注意方法的返回类型,是产品接口

public abstract class IFactory
    {
        public abstract IThing Production();
    }

产品接口

public abstract class IThing
    {
        public abstract void Thing();
    }

鞋子产品类(包含产品的具体实现)

public class ShoesClass : IThing
    {
        public override void Thing()
        {
            Console.WriteLine("生产了鞋子");
        }
    }

鞋子工厂(不包含产品的实现)

public class ShoesFactory : IFactory
    {
        public override IThing Production()
        {
            return new ShoesClass();
        }
    }

控制台

class Program
    {
        static void Main(string[] args)
        {
            IFactory factory = new ShoesFactory();
            IThing thing = factory.Production();
            thing.Thing();
            Console.ReadKey();
        }
    }
原文地址:https://www.cnblogs.com/lbjlbj/p/10598578.html