建造者模式

UML图

代码

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

namespace 杨家毅软件架构
{
class KFCMealBuilder : Meal
{
public override void Burger()
{
Console.WriteLine("肯德基汉堡");
}

public override void Chips()
{
Console.WriteLine("肯德基薯条");
}

public override void Drink()
{
Console.WriteLine("肯德基可乐");
}
}

class MCDMealBuilder : Meal
{
public override void Burger()
{
Console.WriteLine("麦当劳汉堡");
}

public override void Chips()
{
Console.WriteLine("麦当劳薯条");
}

public override void Drink()
{
Console.WriteLine("麦当劳果汁");
}
}

abstract class Meal
{
public abstract void Burger();
public abstract void Chips();
public abstract void Drink();
}
class MealDirector
{
private Meal builder;

public MealDirector(Meal builder1)
{
builder = builder1;
}

public void CreateMeal()
{
builder.Burger();
builder.Chips();
builder.Drink();
}
}

class Program
{
static void Main(string[] args)
{
KFCMealBuilder kfcbuilder = new KFCMealBuilder();
MealDirector kfcdirector = new MealDirector(kfcbuilder);
Console.WriteLine(" 肯德基菜单 ");
Console.WriteLine("--------------------");
kfcdirector.CreateMeal();
Console.WriteLine("--------------------");
Console.WriteLine("");

MCDMealBuilder mcdbuilder = new MCDMealBuilder();
MealDirector mcdirector = new MealDirector(mcdbuilder);
Console.WriteLine(" 麦当劳菜单 ");
Console.WriteLine("--------------------");
mcdirector.CreateMeal();
Console.WriteLine("--------------------");
Console.WriteLine("");
}
}
}

运行结果

 

posted @ 2015-12-31 16:47  裸奔的坑逼  阅读(140)  评论(0)    收藏  举报