我正在学习Builder Pattern设计模式。我理解其中的大部分内容,但我只是对new
关键字感到困惑。 {2}在MealBuilder类中,他创建了一个Meal类型的对象,然后使用该对象调用方法addItem(...)
。我不明白他在参数中传递了什么。我知道new
关键字创建了一个类的实例(是创建对象的另一个实例?),但他并没有为它命名。例如。我理解以下内容:
Meal mealobject = new Meal();
但我不明白这一点:new ChickenBurger();
答案 0 :(得分:2)
如果你写了
Meal meal = new Meal();
Item burger = new ChickenBurger();
meal.addItem(burger);
然后这会表现得一样。但是,如果您不打算再次使用“汉堡”参考,那么创建它是没有意义的。只是写
Meal meal = new Meal();
meal.addItem(new ChickenBurger());
更简单,并且对于阅读代码的人来说显而易见的是,该项目仅被添加到集合中(用餐)。
请注意,这不是一个严格的规定。在某些情况下,您可能会决定对表达式使用命名引用将有助于阐明代码正在执行的操作,尤其是在数据类型不清楚的情况下。