国产探花免费观看_亚洲丰满少妇自慰呻吟_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收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 柳河县| 台北市| 茌平县| 舒兰市| 岱山县| 太谷县| 兰考县| 定兴县| 邹平县| 米脂县| 湘西| 泗阳县| 湘乡市| 库尔勒市| 自贡市| 宜春市| 福鼎市| 荆州市| 晴隆县| 双峰县| 常州市| 宣化县| 大埔县| 镇江市| 安岳县| 萝北县| 仙桃市| 安西县| 太原市| 越西县| 怀来县| 聂拉木县| 本溪| 张家川| 苗栗县| 晴隆县| 福泉市| 阜康市| 马边| 中卫市| 三原县|