建造者模式,煎饼果子
来源:互联网 发布:coc连弩数据 编辑:程序博客网 时间:2024/04/28 19:55
大家有没有吃过煎饼果子?味道超赞还可以根据自己的喜好让老板加鸡蛋、加生菜、加里脊、加火腿、加辣椒等。
模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
案例分析:老板就是煎饼果子的建造者,只要告诉老板我加鸡蛋加生菜就行,老板负责生产并把产品交给你。
优点:隐藏产品细节,复杂对象可配置,建造者可以独立拓展。
注意:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。
代码:首先定义煎饼果子
public class Pancake { public Double price; //价格 public String name; //名称 private Pancake() { price = 3.00; name = "煎饼果子"; } //建造者(老板) public static class Builder { private Pancake pancake = new Pancake(); public Builder addCaraway() { pancake.price += 0.5; pancake.name += "\n加香菜"; return this; } public Builder addShallot() { pancake.price += 0.5; pancake.name += "\n加葱末"; return this; } public Builder addHam() { pancake.price += 1.5; pancake.name += "\n加火腿"; return this; } public Builder addEgg() { pancake.price += 2; pancake.name += "\n加鸡蛋"; return this; } public Builder addLettuce() { pancake.price += 0.5; pancake.name += "\n加生菜"; return this; } public Builder addChine() { pancake.price += 2; pancake.name += "\n加里脊肉"; return this; } public Builder addPepper() { pancake.price += 0.5; pancake.name += "\n加辣椒"; return this; } public Builder addCracknel() { pancake.price += 1.0; pancake.name += "\n加脆饼"; return this; } public Pancake builder() { return pancake; } }}测试
public class Test { public static void main(String args[]) { Pancake pancake = new Pancake.Builder() .addCaraway() .addChine() .addHam() .addEgg() .addPepper() .builder(); System.out.println(pancake.name); System.out.print("总价:" + pancake.price + "元"); }}结果
煎饼果子加香菜加里脊肉加火腿加鸡蛋加辣椒总价:9.5元
阅读全文
0 0
- 建造者模式,煎饼果子
- 煎饼果子与架构模式
- 天津名小吃,正宗的【煎饼果子】
- Builder 建造者模式
- 建造者模式
- 设计模式-------建造者
- 建造者模式
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者模式
- 建造者模式 - builder
- 建造者模式
- Builder建造者模式
- 建造者模式(Builder)
- 建造者模式(builder)
- 建造者模式
- java建造者模式
- 建造者模式
- yii2设置缓存
- 【木马分析】白利用的集大成者:新型远控木马上演移形换影大法
- LabVIEW中开放隐藏属性的inikey
- WEBBASIC Unit07 document 对象 、 自定义对象 、 事件
- Ubuntu输入su提示认证失败的解决方法
- 建造者模式,煎饼果子
- java高级开发工程师面试问题
- anaconda
- Idea 建立maven web项目SSM整合技术
- mysql去掉html标签
- mysql索引类型normal,unique,full text
- mybatits 中${}和#{}的区别
- 【PAT】甲级1002
- Java基本功之Reference详解