/* 抽象的建造者:做外卖 */ public interface Bake { /** * 准备烤箱 */ void oven(); /** * 放入烤箱 */ void thePot(); /** * 撒孜然粉 */ void cumin(); /** * 裹上辣椒面 */ void chiliPowder(); } BakeBuilder.java: /* 具体的建造者 */ public class BakeBuilder implements Bake { @Override public void oven() { System.out.println("准备烤箱"); } @Override public void thePot() { System.out.println("将外卖放入烤箱中"); } @Override public void cumin() { System.out.println("撒孜然粉"); } @Override public void chiliPowder() { System.out.println("裹上辣椒面"); } } BakeDirector.java: /* 指挥者 */ public class BakeDirector { private BakeBuilder bakeBuilder; public BakeDirector(BakeBuilder bakeBuilder) { this.bakeBuilder = bakeBuilder; } public void create() { bakeBuilder.oven(); bakeBuilder.thePot(); bakeBuilder.cumin(); bakeBuilder.chiliPowder(); } } Fired.java: /* 抽象的建造者:炸外卖 */ public interface Fired { /** * 烧油 */ void heating(); /** * 下锅 */ void thePot(); /** * 放盐 */ void salt(); /** * 出锅 */ void outPot(); } FiredBuilder.java: /* 具体的建造者 */ public class FiredBuilder implements Fired { /** * 烧油 */ @Override public void heating() { System.out.println("将油烧开"); } /** * 下锅 */ @Override public void thePot() { System.out.println("将外卖放入油锅中油炸"); } /** * 撒盐 */ @Override public void salt() { System.out.println("撒盐"); } /** * 出锅 */ @Override public void outPot() { System.out.println("炸熟后将外卖从油锅中取出"); } } FiredDirector.java: /* 指挥者 */ public class FiredDirector { private FiredBuilder firedBuilder; public FiredDirector(FiredBuilder firedBuilder) { this.firedBuilder = firedBuilder; } public void create() { firedBuilder.heating(); firedBuilder.thePot(); firedBuilder.salt(); firedBuilder.outPot(); } }为什么要用建造者模式
时间: 2024-02-17 19:26:27 浏览: 75
建造者模式的目的是将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。在上述代码中,通过使用建造者模式,可以将外卖的烤和炸过程分别封装成BakeBuilder和FiredBuilder,使得它们的构建过程与表示分离。同时,通过BakeDirector和FiredDirector的create()方法,可以按照不同的顺序组合BakeBuilder和FiredBuilder,从而创建出不同的外卖。这样可以使得代码更加清晰、易于维护和扩展,同时也提高了代码的复用性。
相关问题
houdini bake 贴图
根据提供的引用内容,Houdini中的贴图烘焙可以通过以下步骤实现:
1.创建材质,并在材质中选择需要烘焙的贴图类型。
2.选择需要烘焙的对象,并在对象参数中选择简模与高模的Object节点。
3.勾选Displacement表示烘焙置换贴图,图片格式选择成Open EXR,因为它存储的是float值范围较高。
4.调整Ray Bias参数,使得射线的投射距离变远。
5.点击烘焙按钮,等待烘焙完成。
6.预览置换贴图的效果。
在Houdini中,贴图烘焙可以帮助我们将高模型的细节转移到低模型上,从而提高渲染效率和减少渲染时间。
阅读全文