Dekorator, wektor

0

Witam, mam do was pytanie na stronie Wikipedii jest pokazane użycie wzorca Dekoratora http://pl.wikisource.org/wiki/Dekorator_%28wzorzec_projektowy%29/kod
Moje pytanie jest jak utworzyć wektor dekorowane Okno z poziomymi i pionowymi paskami przewijania

Coś takiego tylko żeby był dekorowany Vector<Okno> dekorowanaPiza = new Vector<Okno>();
Pozdrawiam Michał

0

Jaki sens ma dekorowanie wektora? Przecież to jest kolekcja, która ma przechowywać obiekty określonego typu.

Vector<? extends Bazowa> wektor = new Vector<Dziedzicząca>();

Może o to ci chodziło?

0

Potrzebuję strukturę danych (wektor), która będzie zawierała wszystkie obiekty "Okno dekorowane" utworzone podczas działania programu.
Wibowit mógłbyś rozwiną swój przykład?

0

No to w twoim kodzie podmień Okno na DekorowaneOkno. Nie rozumiem w czym problem?

0

Źle napisałem, moja wina, potrzebuję strukturę danych
(wektor), która będzie zawierała wszystkie obiekty "Okno dekorowane z poziomymi i pionowymi paskami przewijania
" utworzone podczas działania programu.

0

Okno dekorowane z poziomymi i pionowymi paskami przewijania to nazwa klasy?

0

Chodzi mi o to, że obiekt "dekorowane Okno z poziomymi i pionowymi paskami przewijania" tworzymy
Okno dekorowaneOkno = new PoziomePrzewijanieDekorator(new PionowePrzewijanieDekorator(new ZwykłeOkno()));
Potrzebuję zadeklarować wektor w ten sam sposób, tak żebym mógł się odwołać do poszczególnym obiektów przez indeks.

0

Czyli ma być osobny wektor na każdy zestaw dekorowanych obiektów?

0

Tak, ma być jeden wektor, który zawiera wszystkie utworzone obiekty.

0

No to może: Vector<? extends Okno> wektor = new Vector<? extends Okno>();

Edit:
A chociaż przecież Vector<Okno> powinno wystarczyć. Ja dalej nie wiem o co chodzi autorowi. Niech napisze kod pełny niedziałający to się poprawi.

0

Vibowit nie chodzi, może ja tego nie mogę skompilować.
Moja logika podpowiada mi coś takie Vector<Okno> VectordekorowaneOkno = new Vector<Okno>(new PionowePrzewijanieDekorator(new ZwykłeOkno()));
jest to oczywiście źle, może jest inna składnia, która pozwala na utworzenie takiego wektora?

Dla porównania
Obiekt: Okno dekorowaneOkno = new PoziomePrzewijanieDekorator(new PionowePrzewijanieDekorator(new ZwykłeOkno()));
Mój wymysł: Vector<Okno> VectordekorowaneOkno = new Vector<PoziomePrzewijanieDekorator>(new PionowePrzewijanieDekorator(new ZwykłeOkno()));

0

W Javie nie możesz zrobić Vector<PewnaKlasa> = Vector<InnaKlasa>. Już pomijając fakt, że Vector nie przyjmuje w konstruktorze instancji typu, którym jest parametryzowany.

0

Nadal nie rozumiem, co chcesz zrobić. Co dokładnie i po co chcesz przechowywać w tym wektorze? Czy chcesz tam mieć listę obiektów, które zostały udekorowane przez inne? Tzn. jeśli mamy:

Okno zwykle = new ZwykleOkno();
Okno pionowe = new PionowePrzewijaneDekorator(zwykle);
Okno poziome = new PoziomePrzewijanieDekorator(pionowe);

To w wektorze będą obiekty [zwykle, pionowe, poziome]?

0

Tak, chciałbym mieć listę obiektów, które zostały udekorowane przez inne.

0

No to jak zrobisz Vector<Okno> to będziesz mógł dodać klasy, które implementują interfejs Okno.

0

Mógłbyś ktoś z forum to rozpisać? byłbym bardzo wdzięczny.

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