🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #2721

Re: vraagje over een ontwerp

#2721
From: Koen Hautekeete
Date: Fri, 12 Mar 2004 19:33
58 lines
4124 bytes
Passero wrote:

> "Koen Hautekeete" <koen.hautekeete.news@pandora.be> schreef in bericht
> news:wzn4c.32180$b%6.2058340@phobos.telenet-ops.be...
> 
> 
>>Ik zou hier eerder composition toepassen ipv inheritance. Als je in een
>>bepaalde situatie nood hebt aan een Grafiek object dan maak je hiervan
>>een instantie aan. bvb een GrafiekPanel, afgeleid van JPanel met als
>>field een Grafiek object. Indien je inheritance toepast ga je de
>>twee(gui en business logic) toch weer op een bepaalde manier met elkaar
>>vermengen.
>>
> 
> 
> Aja, dus gewoon in mijn GUI klasse een attribuut opnemen van de klasse
> Grafiek?

Inderdaad.

> Verlies ik niet zo een beetje het idee van inkapseling? De GUI klasse moet
> alles kennen wat in de klasse Grafiek zit dus voor elk attribuut ga ik een
> getter en/of setter moeten schrijven.

Enkel voor de velden die je wil tonen (of "mogen" getoond worden aan de 
gebruiker) in je GUI een getter, een setter is niet direct noodzakelijk.

> Is dat wel handig? Is het dan niet
> gewoon beter om te erven en om een attribuut JPanel te gebruiken en dan een
> methode voorzien die dat JPAnel retourneert? Mijn klasse Grafiek is dan toch
> nog altijd compleet onafhankelijk van mijn GUI want er zal geen enkele
> methode zijn die met de GUI te maken heeft.

De klasse Grafiek is even onafhankelijk van de GUI als je ze gebruikt in 
  een Panel klasse. Er zal geen enkele method op voorkomen die met de 
GUI te maken heeft.

> Enkel de berekeningen en de
> lijsten met waarden zullen er in die klasse zijn. Uiteindelijk moet mijn gui
> klasse ook al die dingen kennen dus dan heb ik toch hoge koppeling, zeer
> hoge koppeling en das toch niet zo goed?

Je GUI-klasse mag die zaken niet kennen, dat is de verantwoordelijkheid 
van de klasse Grafiek. De GUI kan de klasse Grafiek wel gebruiken om de 
resultaten ervan te tonen, bvb de waarden tonen die door Grafiek 
berekend zijn of input van de gebruiker doorgeven aan Grafiek om de 
Grafiek instantie vervolgens berekeningen te laten uitvoeren.

Je kan dit oplossen door bvb gebruik te maken van het Observer pattern 
zodat de gui automatisch verwittigt wordt als het grafiek object wijzigt 
en zichzelf dan automatisch update.

Een goed boek over oa deze problematiek is Design patterns van "The gang 
of four" of Refactoring van Martin Fowler.

Groeten

Koen
Technical Details
Message-ID: <5go4c.32289$Pf2.2296964@phobos.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!38.144.126.76.MISMATCH!feed2.newsreader.com!newsreader.com!newshosting.com!nx02.iad01.newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!diablo.theplanet.net!zen.net.uk!demorgan.zen.co.uk!news2.euro.net!news.cambrium.nl!news.cambrium.nl!ecngs!feeder.ecngs.de!feed1.news.be.easynet.net!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
References: <RQ14c.31002$_L6.2008369@phobos.telenet-ops.be> <20040312095007220+0100@aruba.etowns.net> <8qn4c.32174$7L7.2141225@phobos.telenet-ops.be> <wzn4c.32180$b%6.2058340@phobos.telenet-ops.be> <8Yn4c.32247$Jq.2162811@phobos.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: 107324,754640feddce54e5
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,754640feddce54e5
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2004-03-12 11:33:23 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!38.144.126.76.MISMATCH!feed2.newsreader.com!newsreader.com!newshosting.com!nx02.iad01.newshosting.com!newsfeed.icl.net!newsfeed.fjserv.net!diablo.theplanet.net!zen.net.uk!demorgan.zen.co.uk!news2.euro.net!news.cambrium.nl!news.cambrium.nl!ecngs!feeder.ecngs.de!feed1.news.be.easynet.net!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
From: Koen Hautekeete <koen.hautekeete.news@pandora.be>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: vraagje over een ontwerp
References: <RQ14c.31002$_L6.2008369@phobos.telenet-ops.be> <20040312095007220+0100@aruba.etowns.net> <8qn4c.32174$7L7.2141225@phobos.telenet-ops.be> <wzn4c.32180$b%6.2058340@phobos.telenet-ops.be> <8Yn4c.32247$Jq.2162811@phobos.telenet-ops.be>
In-Reply-To: <8Yn4c.32247$Jq.2162811@phobos.telenet-ops.be>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 58
Message-ID: <5go4c.32289$Pf2.2296964@phobos.telenet-ops.be>
Date: Fri, 12 Mar 2004 19:33:21 GMT
NNTP-Posting-Host: 213.118.182.41
X-Complaints-To: abuse@telenet.be
X-Trace: phobos.telenet-ops.be 1079120001 213.118.182.41 (Fri, 12 Mar 2004 20:33:21 MET)
NNTP-Posting-Date: Fri, 12 Mar 2004 20:33:21 MET
Organization: Telenet Internet