Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Interface IPizza {
- public int cost();
- }
- public abstract class AbstractPizzaDecorator implements IPizza {
- private IPizza pizza;
- public AbstractPizzaDecorator (IPizza p) {
- if(p == null)
- throw new Exception();
- pizza = p;
- }
- public abstract int condimentCost();
- //posso rendere il metodo concreto in caso esempio avessi
- //tanti condimenti allo stesso prezzo, per averlo generale
- //e farlo ereditare sotto evitando di scrivere la stessa roba
- public int cost(){
- return pizza.cost() + condimentCost();
- }
- }
- public class ConcretePizzaDecorator extends AbstractPizzaDecorator {
- public ConcretePizzaDecorator (IPizza p) {
- super(p);
- }
- public int condimentCost() {
- return 300;
- }
- }
- public class ConcretePizza implements IPizza {
- public int cost() {
- return 500;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement