设计模式-建造者模式-创新互联

//产品
public abstract class Food
    {
        public List<string> list = new List<string>();
        public abstract void show();
    }
    //辣椒炒肉
    public class lajiaochaorou: Food
    {

        public override void show()
        {
            Console.WriteLine("我已经:");
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("我变成了一盘香喷喷的辣椒炒肉");
            Console.ReadLine();
        }
    }

    public class hongshaorou: Food
    {        
        public override void show()
        {
            Console.WriteLine("我已经:");
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("我变成了一盘香喷喷的红烧肉");
            Console.ReadLine();
        }
    }

        //制造产品
        public abstract class MakeFood
    {
        public abstract void addYan();
        public abstract void addYou();

        public abstract void addFood();

        public abstract Food getResult();
    }

    public class MakeLaJiaoChaoRou : MakeFood
    {
        private lajiaochaorou ljcr = new lajiaochaorou();
        public override void addFood()
        {
            ljcr.list.Add("加入了辣椒和肉");
        }

        public override void addYan()
        {
            ljcr.list.Add("撒上了1毫克盐"); 
        }

        public override void addYou()
        {
            ljcr.list.Add("倒入了2毫升油");
        }

        public override Food getResult()
        {
            return ljcr;
        }
    }

    public class MakeHongShaoRou : MakeFood
    {
        private hongshaorou ljcr = new hongshaorou();
        public override void addFood()
        {
            ljcr.list.Add("加入了酱油和肉");
        }

        public override void addYan()
        {
            ljcr.list.Add("撒上了3毫升盐");
        }

        public override void addYou()
        {
            ljcr.list.Add("倒入了5毫升油");
        }
        public override Food getResult()
        {
            return ljcr;
        }
    }

        //指挥者
        public class Director
    {        
        public Food createFood(MakeFood mk)
        {
            mk.addYou();
            mk.addYan();
            mk.addFood();
            return mk.getResult();
        }
    }  

        //前端
        static void Main(string[] args)
        {
            Director d = new Director();

            MakeFood md = new MakeLaJiaoChaoRou();
            Food c =d.createFood(md);

            MakeFood md2 = new MakeHongShaoRou();
            Food c2 = d.createFood(md2);
            c.show();
            c2.show();

        }

总结:建造者模式把创建过程和展示完全分离,使得同样的创建过程可以创建不同的表示。
创建时继承接口保证完全实现接口方法,这样可以确保创建过程的完整性。
当创建系列复杂对象,并且对象内部的构建顺序是有规律的,但构建方式有不同的变化时候,就可以选择建造者模式。
建造者模式和外观模式相似,都有一个中间层(指挥者或者门脸层)构建前端所需要展示的结果,区别在于:
外观-客户要赚钱,委托基金经理,基金经理会很多招数,股票行情好的时候,就买卖股票,黄金行情好的时候就买卖黄金,军火行情好的时候就买卖军火,各种行情都好的时候,就同时买卖股票、黄金、军火。以达到赚钱的目的。
仅仅是各个对象的组合,没有关注到每个对象的构建细节。
建造者-客户要赚钱,委托基金经理,这个基金经理只会股票交易,必须严格执行低买高卖的顺序,才能赚钱。

创新互联公司服务项目包括通州网站建设、通州网站制作、通州网页制作以及通州网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,通州网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到通州省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

设计模式-建造者模式

设计模式-建造者模式

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

网站标题:设计模式-建造者模式-创新互联
文章源于:https://www.cdcxhl.com/article16/cegddg.html

成都网站建设公司_创新互联,为您提供用户体验定制网站品牌网站建设微信小程序小程序开发标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化