Dans le travail que je fais au jour le jour, en Java, j'utilise les constructeurs de beaucoup de fluide interfaces, par exemple: new PizzaBuilder(Size.Large).onTopOf(Base.Cheesy).with(Ingredient.Ham).build();
Avec un quick-and-dirty Java approche, chaque appel de méthode se transforme le constructeur d'instance et les retours this
. Immuablement, il implique le plus saisissant, le clonage, le constructeur d'abord avant de le modifier. La méthode build finalement ne le levage lourd sur le générateur d'état.
Ce est une belle façon d'atteindre le même en Scala?
Si je voulais m'assurer que onTopOf(base:Base)
a été appelé qu'une seule fois, et ensuite seulement with(ingredient:Ingredient)
et build():Pizza
pourrait être appelée, à la une du générateur, comment pourrais-je aller sur cette approche?