🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153933

Jak to ugryźć jedną metodą -Java/Delphi

#153933
From: J-23
Date: Fri, 06 Dec 2013 16:39
34 lines
2543 bytes
Witam,
Na wstępie zaznaczam że niżej opisany problem będę chciał rozwiązać w 
Javie ale że szukam sposobu/podpowiedzi rozwiązania problemu, puszczę to 
także na grupę Delphi (Mam wrażenie że więcej osób ją przegląda)

Piszę ogólnikowo ale będę się starał by było zrozumiale dla wszystkich

Mam klasę która jest pojemnikiem na inne klasy (które nie mają jednego 
wspólnego przodka - złośliwi powiedzą ze jest klasa Object :))

teraz chciałbym w klasie "pojemnik" zrobić jedną metodę która doda mi te 
poszczególne objekty (nic trudnego)

bo można by utworzyć metodę: pojemnik.add(Object object) no i 
pozamiatane mamy jedną metodę która doda elementy do pojemnika *dla 
wszystkich*, Ja dodatkowo chciałbym kontrolować co wpada do tego 
pojemnika by reagować na niektóre elementy.

Tutaj przychodzą mi do głowy 2 rozwiązania:
1. użyć *instanceof* w taki sposób:
if (object instanceof nazwaklasy){...}
2. Wzorzec projektowy: Chain of Responsibility

teraz tak co mogę, a czego nie mogę :)
Piszę w GWT tam nie ma czegoś takiego jak *instanceof*. Gdyby był nie 
było by problemu :) Natomiast co do użycia wzorca którego wymieniłem 
fajnie by się sprawdzał ale wymagałby każdorazowo dodania nowego obiektu 
jeśli by taki powstał, a zakładam że powstaną choćby przez dziedziczenie 
tych elementów które już mogą istnieć w pojemniku

i teraz to co mnie zastanawia to jak to *obejść* by jeśli elementy będą 
np dziedziczone by ich nie dodawać do implementacji wzorca?

Pozdrawiam
Technical Details
Message-ID: <l7svf1$tkd$1@mx1.internetia.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
From: J-23 <baczeklu@o2.pl>
Newsgroups: pl.comp.lang.java,pl.comp.lang.delphi
Subject: Jak to ugryźć jedną metodą
 -Java/Delphi
Date: Fri, 06 Dec 2013 17:39:26 +0100
Organization: Netia S.A.
Lines: 35
Message-ID: <l7svf1$tkd$1@mx1.internetia.pl>
NNTP-Posting-Host: 77-253-116-160.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: mx1.internetia.pl 1386348833 30349 77.253.116.160 (6 Dec 2013 16:53:53 GMT)
X-Complaints-To: abuse@inetia.pl
NNTP-Posting-Date: Fri, 6 Dec 2013 16:53:53 +0000 (UTC)
X-Tech-Contact: usenet@internetia.pl
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0
X-Server-Info: http://www.internetia.pl/
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit