您的位置:首页 > 运维架构 > Shell

运维之自动化SHELL脚本

2013-11-15 18:21 477 查看
public class Bread {
//所有原料单位为g

//必须原料
private double water;

private double flour;

private double soda;

//以下都是可选原料
private double salt;

private double suger;

private double fat;

private double egg;

private Bread(Build build) {
this.egg = build.egg;
this.fat = build.fat;
this.flour = build.flour;
this.salt = build.salt;
this.soda = build.soda;
this.suger = build.suger;
this.water = build.water;
}

public static class Build {

//必须原料
private double water;

private double flour;

private double soda;

//以下都是可选原料
private double salt;

private double suger;

private double fat;

private double egg;

public Build(double water, double flour, double soda) {
this.water = water;
this.flour = flour;
this.soda = soda;
}

public Build salt(double val) {
this.salt = val;
return this;
}

public Build suger(double val) {
this.suger = val;
return this;
}

public Build fat(double val) {
this.fat = val;
return this;
}

public Build egg(double val) {
this.egg = val;
return this;
}

public Bread build() {
return new Bread(this);
}
}

@Override
public String toString() {
return String.format("蛋:%.2f 油:%.2f 面粉:%.2f 盐:%.2f 苏打:%.2f 糖:%.2f 水:%.2f", this.egg, this.fat, this.flour, this.salt, this.soda, this.suger, this.water);
}

public static void main(String[] args) {
System.out.println(new Build(500.0, 200.0, 30.5).egg(10.2).fat(15.5).build());
}

}

 

内部类+建造者模式,当一个物体有很多可选参数的时候,是一个绝佳的设计模式。

hibernate的sessionfactory和jpa的entitymanger应该用了同样的实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: