【设计模式】抽象工厂方法模式(C#)
1、概述
是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。(同族的不同等级的产品可以理解为Apple公司的iPhone、iPad、Mac,这里建议大家搜索产品等级和产品族。)
抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。
2、抽象工厂方法模式实现思路
现披萨店业务发生改变,不仅要生产披萨还要生产牛排,如希腊牛排、奶酪牛排(费城)等,要是按照工厂方法模式,需要定义牛排类、希腊牛排类、奶酪牛排类、希腊牛排工厂、奶酪牛排工厂、牛排工厂类,很容易发生类爆炸情况。其中希腊披萨、奶酪披萨是一个产品等级,都是披萨;希腊牛排、奶酪牛排也是一个产品等级;希腊披萨和希腊牛排是同一产品族,奶酪披萨和奶酪牛排是同一产品族。所以这个案例可以使用抽象工厂模式实现。
首先,我们先创建一个简单的类。
//抽象产品类
public abstract class Pizza
{
//名字
public string Name;
//准备原材料
public abstract void Prepare();
public void Bake()
{
Console.WriteLine($"{this.Name} bake");
}
public void Cut()