第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

做一頓家常便飯,建造者設(shè)計(jì)模式(Builder)

標(biāo)簽:
JavaScript

开发的设计模式,是博大精深的,只有一步一个脚印和循序渐进的学习与应用,才能有进步。
近段时间,Insus.NET把自己理解设计模式,简单写了一下与分享自己的理解与想法。得到很多高手与网友的热心评论,让Insus.NET学习与进步不少,真心感谢了。

前几天有写了一篇《烹饪,简单工厂(Simple Factory)》,一开始就创建一个"烹饪类",来负责创建其他类的实例。接下来创建炒,煎,煮,炖等类。
今天,Insus.NET也是以烹饪来写一个建造者设计模式,烹饪是膳食的艺术。Insus.NET虽然不是厨师,但喜欢品尝各种美味的佳肴。


此篇是介绍建造者设计模式,我们以烹饪的方式做一顿家常便饭:

HomelyFood

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summary description for HomelyFood/// </summary>namespace Insus.NET{    //家常便饭    public class HomelyFood    {        //饭菜                List<string> Meals = new List<string>();        public void Add(string riceOrDish)         {            Meals.Add(riceOrDish);        }        public void Serve() //饭菜上桌        {            foreach (string s in Meals)            {                HttpContext.Current.Response.Write(s);            }        }    }}


做饭类,是抽象的建造者类,确定这顿家常便饭的内容。如炒青菜,煎鸡蛋,清蒸鱼,还有炖汤等:

Cooking

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summary description for Cooking/// </summary>namespace Insus.NET{    public abstract class Cooking    {        public abstract void BoilRice();        public abstract void Fry();        public abstract void PanFry();        public abstract void Steam();        public abstract void Stew();        public abstract HomelyFood GetHomelyFood();    }}


就如上面的家常便饭的菜式,每个做饭者做出来的菜式名目也许是一样,但是手法不一样,调味不一样,都会显示于实际的细节之上。但是吃上这顿饭的人,不清楚做的过程。
因此下面的类是一个真正做饭者类。当然如果遇上烹饪比赛场合,如在某某电视台可以看到烹饪比赛节目,那些是多人多团队进行。因此需要创建多个类。

BehaviourCook

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summary description for BehaviourCook/// </summary>namespace Insus.NET{    public class BehaviourCook : Cooking    {        private HomelyFood hf = new HomelyFood();        public override void BoilRice()        {            hf.Add("白米饭。");        }        public override void Fry()        {            hf.Add("蒜蓉炒通菜。");        }        public override void PanFry()        {            hf.Add("煎荷包蛋。");        }        public override void Steam()        {            hf.Add("清蒸鲩鱼。");        }        public override void Stew()        {            hf.Add("炖汤。");        }        public override HomelyFood GetHomelyFood()        {            return hf;        }    }}


建造者设计模式,还有一个指挥者类,一下班,儿子就对Insus.NET说,肚子饿了,爸爸快做饭给我吃,要有炖汤,清蒸鲩鱼,煎荷包蛋,蒜蓉炒通菜,当然米饭是少不了的。

Director

using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Summary description for Director/// </summary>namespace Insus.NET{    public class Director    {        public void Construct(Cooking c)        {            c.BoilRice();            c.Fry();            c.PanFry();            c.Steam();            c.Stew();        }    }}


ok,经过一二个小时烹制,一顿简单而美味的家常饭上桌了:

HomelyFoodDemo.aspx.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Insus.NET;public partial class HomelyFoodDemo : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        Director director = new Director();        Cooking c = new BehaviourCook();        director.Construct(c);        HomelyFood hf = c.GetHomelyFood();        hf.Serve();    }}


 建造者设计模式源代码(.net 4.0):

 http://download.cnblogs.com/insus/CSharpNET/Insus_Builder.rar


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消