今天来搞一搞建造者模式,本猿这次手动笔记本写代码,讲解一下所谓的建造者模式,主要是表达一下对该模式的喜爱。希望大家也能爱上这个模式。
我们用代码来举个例子:
比如我们去麦当劳,需要点个套餐。我们可以这么做
//我们先创建一个套餐类 public class Meal{ private String foods; private String drink; public void setfoods(String foods){ this.foods = foods; } public void setdrink(String drink){ this.drink = drink; } public void getdrink(){ this.foods = foods; } public void getdrink(){ this.drink = drink; } } //然后我们继续创建一个套餐构造类 public abstract class MealBuilder{ Meal meal = new Meal(); public abstract void buildfoods(); public abstract void builddrink(); public Meal getMeal(){ return meal; } } //接下来我们要实现套餐构造类 public class MealA extends MeadBuilder{ @Overrion public void buildfoods(){ meal.setfoods("薯条") } @Overrion public void builddrink(){ meal.setdrink("可乐") } } //最后我们创建一个建造者 //建造者模式名称就是这么来的 public class Builder{ private MealBuilder mealBuilder; public void setMealBuilder(MeanlBuilder mealbuilder){ this.mealBuilder = mealbuilder; } public Meal getMeal(){ mealBuilder.setfoods(); mealBuilder.setdrink(); return mealBuilder.getMeal(); } } //测试使用建造者 public static void main(String[] args){ MealA meala = new MealA(); Waiter waiter = new Waiter(); waiter.setMealBuilder(meala); Meal meal = waiter.getMeal(); System.out.println("foods:" + meal.getfoods); }
从测试例子可以看出,开发者最后只需要定义套餐和服务员(即建造者),然后让建造者去建造套餐即可,全程无需知道底层操作,只需调用和命令做事即可。
其实很多时候,我们在开发就是要这种封装思维,无论是工厂模式还是建造者模式,都是为了方便高层调用,因为这样就无需知道具体底层而提高开发效率和代码结构清晰
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于