建造者模式
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("");
}
}
}
运行结果

浙公网安备 33010602011771号