using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FactoryPattern1 : MonoBehaviour {
void Start() {
NYStylePizzeStore nYStylePizzeStore = new NYStylePizzeStore();
nYStylePizzeStore.OrderPizza( PIZZETYPE.CHEESE);
ChicagoStylePizzeStore chicagoStylePizzeStore = new ChicagoStylePizzeStore();
chicagoStylePizzeStore.OrderPizza( PIZZETYPE.VEGGIE);
}
}
#region 运用依赖倒置原则的工厂模式
public interface PizzaIngredientFactory {
Dough CreateDough();
Sauce CreateSauce();
Cheese CreateCheese();
Veggies[] CreateVeggies();
Pepperoni CreatePepperoni();
Clams CreateClam();
}
public class NYPizzaIngredientFactory : PizzaIngredientFactory{
public Dough CreateDough(){
return new NYDough();
}
public Sauce CreateSauce(){
return new NYSauce();
}
public Cheese CreateCheese(){
return new NYCheese();
}
public Veggies[] CreateVeggies(){
Veggies[] veggies = { new NYVeggies(),new Onion(),new Garlic()};
return veggies;
}
public Pepperoni CreatePepperoni(){
return new NYPepperoni();
}
public Clams CreateClam(){
return new NYClams();
}
}
public class ChicagoPizzaIngredientFactory : PizzaIngredientFactory {
public Dough CreateDough() {
return new ChicagoDough();
}
public Sauce CreateSauce() {
return new ChicagoSauce();
}
public Cheese CreateCheese() {
return new ChicagoCheese();
}
public Veggies[] CreateVeggies() {
Veggies[] veggies = { new ChicagoVeggies(), new Onion(), new Garlic() };
return veggies;
}
public Pepperoni CreatePepperoni() {
return new ChicagoPepperoni();
}
public Clams CreateClam() {
return new ChicagoClams();
}
}