简单工厂:
工厂模式:简单工厂,工厂方法,抽象工厂三种. 工厂方法(力求简洁)
工厂即为生产东西的地方.在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(); } }