Article View: be.comp.programming
Article #2721Re: vraagje over een ontwerp
From: Koen Hautekeete
Date: Fri, 12 Mar 2004 19:33
Date: Fri, 12 Mar 2004 19:33
58 lines
4124 bytes
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-mailReferences:
<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