// concurrent/Pizza.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.import java.util.function.*;import onjava.Nap;public class Pizza {public enum Step {DOUGH(4), ROLLED(1), SAUCED(1), CHEESED(2),TOPPED(5), BAKED(2), SLICED(1), BOXED(0);int effort; // Needed to get to the next stepStep(int effort) { this.effort = effort; }Step forward() {if(equals(BOXED)) return BOXED;new Nap(effort * 0.1);return values()[ordinal() + 1];}}private Step step = Step.DOUGH;private final int id;public Pizza(int id) { this.id = id; }public Pizza next() {step = step.forward();System.out.println("Pizza " + id + ": " + step);return this;}public Pizza next(Step previousStep) {if(!step.equals(previousStep))throw new IllegalStateException("Expected " +previousStep + " but found " + step);return next();}public Pizza roll() { return next(Step.DOUGH); }public Pizza sauce() { return next(Step.ROLLED); }public Pizza cheese() { return next(Step.SAUCED); }public Pizza toppings() { return next(Step.CHEESED); }public Pizza bake() { return next(Step.TOPPED); }public Pizza slice() { return next(Step.BAKED); }public Pizza box() { return next(Step.SLICED); }public boolean complete() {return step.equals(Step.BOXED);}@Overridepublic String toString() {return "Pizza" + id + ": " +(step.equals(Step.BOXED)? "complete" : step);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。