码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式-建造者模式

时间:2018-05-12 21:41:54      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:设计模式   建造者模式   

//产品 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(); }

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

技术分享图片

设计模式-建造者模式

标签:设计模式   建造者模式   

原文地址:http://blog.51cto.com/5591787/2115578

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!