using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Design_Patterns
{
//食品产品父类 接口
public interface FoodProduct
{
//.......
}
//A食品
public class FoodProductA : FoodProduct
{
//.......
}
//B食品
public class FoodProductB : FoodProduct
{
//.......
}
//C食品
public class FoodProductC : FoodProduct
{
//.......
}
//食品生产工厂 抽象类 工厂方法模式是简单工厂的衍生 (单系列产品种类是不定的,是变化的,不依赖)实现“开闭原则”,实现了可扩展。
public abstract class Market
{
public FoodProduct GetFood()
{
return CreateFood();
}
public abstract FoodProduct CreateFood();
}
//生成食品A
public class MarketA : Market
{
public override FoodProduct CreateFood()
{
//.......
return new FoodProductA();
}
}
//生成食品B
public class MarketB : Market
{
public override FoodProduct CreateFood()
{
//.....
return new FoodProductB();
}
}
//生成食品C
public class MarketC : Market
{
public override FoodProduct CreateFood()
{
//.....
return new FoodProductC();
}
}
//调用
public class Test
{
Market ma = new MarketA();
public Test()
{
ma.GetFood();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Design_Patterns
{
//食品产品父类 接口
public interface FoodProduct
{
//.......
}
//A食品
public class FoodProductA : FoodProduct
{
//.......
}
//B食品
public class FoodProductB : FoodProduct
{
//.......
}
//C食品
public class FoodProductC : FoodProduct
{
//.......
}
//食品生产工厂 抽象类 工厂方法模式是简单工厂的衍生 (单系列产品种类是不定的,是变化的,不依赖)实现“开闭原则”,实现了可扩展。
public abstract class Market
{
public FoodProduct GetFood()
{
return CreateFood();
}
public abstract FoodProduct CreateFood();
}
//生成食品A
public class MarketA : Market
{
public override FoodProduct CreateFood()
{
//.......
return new FoodProductA();
}
}
//生成食品B
public class MarketB : Market
{
public override FoodProduct CreateFood()
{
//.....
return new FoodProductB();
}
}
//生成食品C
public class MarketC : Market
{
public override FoodProduct CreateFood()
{
//.....
return new FoodProductC();
}
}
//调用
public class Test
{
Market ma = new MarketA();
public Test()
{
ma.GetFood();
}
}
}