Klonowanie obiektów w Java

0

Mam pewien problem z Javą. Otóż piszę pewną grę, w której jest produkowane np jedzenie. Jedzenie ma jakąś datę ważności która jest ustalana od czasu produkcji. Mam klasę jedzenie i tworzę x obiektów. x jest liczbą różnych typów produktów, np jabłko, czekolada. Powiedzmy, że jabłko jest ważne 3 dni od czasu wyprodukowania.
Chciałbym, żeby wyglądało to tak:
data aktualna: 1.01.2000r.
produkuj jabłko: data ważności: 4.01.2000r.
następnego dnia produkuje mi jabłko które będzie ważne do 5.01 itd. Nie wiem tylko jak to zrobić. Muszę za każdym razem tworzyć nowy obiekt? Próbowałem wykorzystać clone(), ale to nie działa. Bardzo proszę o pomoc.

0

Nie bardzo ogarniam gdzie widzisz problem. Produkuj jabłka z datą ważności now()+ileśtam dni i tyle.

0

Klonowanie służy do tworzenia kopii obiektów (głębokich - klonowane są też obiekty z pól, płytkich - klonowany jest tylko obiekt, ale jego zależności już nie).

Najprościej będzie użyć operatora new i za każdym razem tworzyć nowy obiekt. Jeżeli jednak proces tworzenia obiektów jest skomplikowany bądź nie chcesz niczego przegapić to warto zapoznać się ze wzorcem budowniczego oraz tzw. fluent interface. Pierwszy pozwala łatwiejsze tworzenie obiektów z wieloma polami. Drugi wspiera nas poprzez "wielokropkowe" konstrukcje np.:

Jedzenie jedzenie = JedzenieBuilder.newUnit().type(FoodType.JABLKO).productionDate().validity(3, TimeUnit.DAY).build();

1 użytkowników online, w tym zalogowanych: 0, gości: 1