国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

設計模式-簡單工廠模式(SimpleFactory-C#)

2024-07-21 02:18:46
字體:
來源:轉載
供稿:網友
《java與模式》

上面那本書上的例子舉的是園丁和果園的例子,學習設計模式最好在生活中自己找個例子

實踐一下,下面是我自己的一個例子,是講快餐店的例子,快餐店提供很多食物,比如

面條,米飯,面包。首先定義了一個food接口,然后這些食物都從它來繼承,定義了一個大廚

他包辦所有食物的制作工作,這就是我所理解的簡單工廠模式的概念,下面是源代碼:



using system;


namespace simplefactorypattern
{
/// <summary>
/// 簡單工廠模式示例
/// </summary>
class simplefactorypattern
{
//定義food接口
public interface food
{
//烹飪
void cook();
//賣出
void sell();

}

//noodle

public class noodle:food
{
public noodle()
{
console.writeline("/nthe noodle is made..");
}
private int price;

//面條noodle的cook方法接口實現
public void cook()
{
console.writeline("/nnoodle is cooking...");
}

//面條noodle的sell方法接口實現
public void sell()
{
console.writeline("/nnoodle has been sold...");
}
public int price
{
get{return this.price;}
set{price=value;}
}
}

//rice
public class rice:food
{
public rice()
{
console.writeline("/nthe rice is made ..");
}
private int price;
public void cook()
{
console.writeline("/nrice is cooking...");
}
public void sell()
{
console.writeline("/nrice has been sold...");
}
public int price
{
get{return this.price;}
set{price=value;}
}
}



//bread
public class bread:food
{
public bread()
{
console.writeline("/nthe bread is made....");
}
private int price;
public void cook()
{
console.writeline("/nbread is cooking...");
}
public void sell()
{
console.writeline("/nbread has been sold...");
}
public int price
{
get{return this.price;}
set{price=value;}
}
}


//定義大廚,他包辦這個快餐店里的所有food,包括面條,面包和米飯
class chef
{
public static food makefood(string foodname)
{
try
{
switch(foodname)
{
case "noodle": return new noodle();
case "rice":return new rice();
case "bread":return new bread();
default:throw new badfoodexception("bad food request!");
}
}
catch(badfoodexception e)
{
throw e;
}
}

}

//異常類,該餐館沒有的食品
class badfoodexception: system.exception
{
public badfoodexception(string strmsg)
{
console.writeline(strmsg);
}
}


/// <summary>
/// 應用程序的主入口點。
/// </summary>
[stathread]
static void main(string[] args)
{
food food=chef.makefood("bread");
food.cook();
food.sell();
console.readline();
}
}
}




  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 梅州市| 奉贤区| 永安市| 广饶县| 龙口市| 万全县| 连南| 孝义市| 嘉兴市| 乌兰浩特市| 祁阳县| 泰顺县| 湖南省| 阜宁县| 车致| 宜昌市| 荥经县| 微博| 牙克石市| 思茅市| 海宁市| 宜兴市| 辰溪县| 贵港市| 北安市| 施秉县| 沧州市| 新蔡县| 吴堡县| 贵港市| 长白| 清远市| 眉山市| 宿松县| 海林市| 安化县| 宝坻区| 乳源| 辉南县| 兴义市| 康平县|