简单工厂之简单模型(uml)
下面是程序:
using System;
namespace SimpleFactory
{
class Class1
{
[STAThread]
static void
{
食物 food=大厨师.要做的食物("面条");
food.做食物();
food.卖食物();
Console.ReadLine();
}
}
///
/// 定义食物接口
///
public interface 食物
{
void 做食物();
void 卖食物();
}
///
/// 抛出大厨师不能做的食物
///
public class BadFoodException : System.Exception
{
public BadFoodException(string str)
{
System.Console.WriteLine(str);
}
}
///
/// 面条
///
public class 面条 : 食物
{
public 面条()
{
System.Console.WriteLine("这是面条");
}
public void 做食物()
{
System.Console.WriteLine("现在煮面条");
}
public void 卖食物()
{
System.Console.WriteLine("现在卖面条");
}
}
///
/// 面包
///
public class 面包 : 食物
{
public 面包()
{
System.Console.WriteLine("这是面包");
}
public void 做食物()
{
System.Console.WriteLine("现在做面包");
}
public void 卖食物()
{
System.Console.WriteLine("现在卖米饭");
}
}
///
/// 米饭
///
public class 米饭 : 食物
{
public 米饭()
{
System.Console.WriteLine("这是米饭");
}
public void 做食物()
{
System.Console.WriteLine("现在煮米饭");
}
public void 卖食物()
{
System.Console.WriteLine("现在卖米饭");
}
}
///
/// 大厨师
///
public class 大厨师
{
public static 食物要做的食物(string food)
{
try
{
switch(food)
{
case "面包":
return new 面包();
case "米饭":
return new 米饭();
case "面条":
return new 面条();
default:
throw new BadFoodException("没有这种食物");
}
}
catch(BadFoodException e)
{
throw e;
}
}
}
}
第一次作uml图,请各位多多斧正阿!先谢过了。