Aktywne Wpisy
![jbc_putina](https://wykop.pl/cdn/c3397992/jbc_putina_jzuA0Xxm5v,q60.jpg)
jbc_putina +165
Kgdygryhy +268
#frajerzyzmlm
Gościu mi makaron na uszy nawija że zarabia kupę kasy po czym wysyła mi konto demo. 😀
Gościu mi makaron na uszy nawija że zarabia kupę kasy po czym wysyła mi konto demo. 😀
![Kgdygryhy - #frajerzyzmlm
Gościu mi makaron na uszy nawija że zarabia kupę kasy po c...](https://wykop.pl/cdn/c3201142/7a6720d21d984d540a8e91961cd015095e46615d9af31c5ebcb5b962d26d70de,w150.jpg)
źródło: Screenshot_20240911_061912_Instagram
Pobierz
Pizza ma listę składników, które są obiektami implementującymi interfejs Addition, i chciałbym, abym mógł dekorować pizzę każdym składnikiem, czyli coś w stylu:
public class Ham implements Addition extends AdditionDecorator
Ma to sens?
#java #programowanie
private List listAddition;
No to już masz zrobione, że każdym składnikiem można to o co chodzi?
Pizza pizza = new CheesePizza(list);
Pizza pizza = new Ham(pizza);
I z tego powinna wyjść pizza serowa z dodatkową szynką. I zastanawiam się, czy takie rozwiązanie jest dobre czy może coś za bardzo przekombinowuję.
Komentarz usunięty przez autora
Ten fragment kodu jest nieprawidłowy, redefiniujesz zmienne. Zmienna o nazwie pizza jest już utworzona.
Powiedziałem
powinno być:
Pizza pizza = new CheesePizza(); //bez tego list, już nie wazne to
pizza = new Ham(pizza);
pizza.add(new Ham())
. Skoro chcesz w ten sposób dodawać składniki to może jakiś Builder?Teraz jest błąd semantyczny.
Pizza pizza = new CheesePizza(); <- tworzysz zmienną typu pizza przechowującą obiekt typu CheesePizza. To jest ok
pizza = new Ham(pizza); <- nadpisujesz zawartość, więc CheesePizza jest usuwana a w jej miejsce wstawiany
Pizza myPizza = PizzaFactory.createPizza(CHEESE_PIZZA).withToppings(new Ham(), new Mushrooms(), new Pepperoni());
Komentarz usunięty przez autora
Jeżeli masz to tak zrobione to nie możesz przypisać obiektu typu Ham do zmiennej typu Pizza
@Philopolemus_Fronius: klasa Ham miałaby raczej wygladać tak:
//AdditionDecorator dziedziczy z pizzy
public class Ham extends AdditionDecorator implements Addition {
Pizza pizza;
public Ham(Pizza pizza) { this.pizza =
Możesz zrobić np tak.
Pizza pizza = new CheesePizza(new HamPizza())