首页 > 其他 > 详细

工厂模式

时间:2015-12-31 22:54:29      阅读:417      评论:0      收藏:0      [点我收藏+]

UML图

技术分享

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 杨家毅软件架构
{
abstract class Burger
{
public abstract void GBurger();
}
abstract class Chicken
{
public abstract void GChicken();
}
abstract class Drink
{
public abstract void GDrink();
}
class KFCBurger : Burger
{
public override void GBurger()
{
Console.WriteLine("肯德基汉堡");
}
}
class MCDBurger : Burger
{
public override void GBurger()
{
Console.WriteLine("麦当劳汉堡");
}
}
class KFCChicken : Chicken
{
public override void GChicken()
{
Console.WriteLine("肯德基炸鸡");
}
}
class MCDChicken : Chicken
{
public override void GChicken()
{
Console.WriteLine("麦当劳炸鸡");
}
}
class KFCDrink : Drink
{
public override void GDrink()
{
Console.WriteLine("肯德基可乐");
}
}
class MCDDrink : Drink
{
public override void GDrink()
{
Console.WriteLine("麦当劳果汁");
}
}
interface AbstractFactory
{
Burger CreateBurger();
Chicken CreateChicken();
Drink CreateDrink();
}
class KFCFactory : AbstractFactory
{
public Burger CreateBurger()
{
return new KFCBurger();
}

public Chicken CreateChicken()
{
return new KFCChicken();
}

public Drink CreateDrink()
{
return new KFCDrink();
}
}
class MCDFactory : AbstractFactory
{
public Burger CreateBurger()
{
return new MCDBurger();
}

public Chicken CreateChicken()
{
return new MCDChicken();
}

public Drink CreateDrink()
{
return new MCDDrink();
}
}
class Meal
{
private Burger burger;
private Chicken chicken;
private Drink drink;

public Burger Burger
{
get { return burger; }
set { burger = value; }
}

public Chicken Chicken
{
get { return chicken; }
set { chicken = value; }
}

public Drink Drink
{
get { return drink; }
set { drink = value; }
}

public void CreateMeal()
{
burger.GBurger();
chicken.GChicken();
drink.GDrink();
}
}
class Program
{
static void Main(string[] args)
{
AbstractFactory factory = new KFCFactory();
Console.WriteLine("肯德基工厂\n");
Meal Meal1 = new Meal();
Meal1.Burger = factory.CreateBurger();
Meal1.Chicken = factory.CreateChicken();
Meal1.Drink = factory.CreateDrink();
Meal1.CreateMeal();

AbstractFactory factory2 = new MCDFactory();
Console.WriteLine("\n\n麦当劳工厂\n");
Meal Meal2 = new Meal();
Meal2.Burger = factory2.CreateBurger();
Meal2.Chicken = factory2.CreateChicken();
Meal2.Drink = factory2.CreateDrink();
Meal2.CreateMeal();
}
}
}

运行结果

技术分享

工厂模式

原文:http://www.cnblogs.com/Yang-jy/p/5092757.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!