Protected field alternatives in Java? -
i have code using protected field in super class. how can avoid it, because think field should private?
/** "abstract builder" */ abstract class pizzabuilder { protected pizza pizza; public pizza getpizza() { return pizza; } public void createnewpizzaproduct() { pizza = new pizza(); } public abstract void builddough(); public abstract void buildsauce(); public abstract void buildtopping(); } /** "concretebuilder" */ class hawaiianpizzabuilder extends pizzabuilder { public void builddough() { pizza.setdough("cross"); } public void buildsauce() { pizza.setsauce("mild"); } public void buildtopping() { pizza.settopping("ham+pineapple"); } } /** "concretebuilder" */ class spicypizzabuilder extends pizzabuilder { public void builddough() { pizza.setdough("pan baked"); } public void buildsauce() { pizza.setsauce("hot"); } public void buildtopping() { pizza.settopping("pepperoni+salami"); } }
use getpizza() in child classes.
so :
public void builddough() { pizza.setdough("cross"); } becomes
public void builddough() { getpizza().setdough("cross"); }
Comments
Post a Comment