Article View: be.comp.programming
Article #2770Re: interface of abstracte klasse?
From: Joost
Date: Mon, 15 Mar 2004 20:09
Date: Mon, 15 Mar 2004 20:09
56 lines
4261 bytes
4261 bytes
>>Sorry, dat is onzin. Althans, als je uiteindelijk een bruikbare class >>(dus een concrete class) wilt opleveren. En omdat ik het gevoel heb dat >>je toch iets werkends wil opleveren zal je uiteindelijk op een concrete >>class uitkomen waarin ALLE nog niet ge�mplementeerde methods worden >>ge�mplementeerd. > Daar heb je 100% gelijk in maar zeg dat eens tegen onze docenten... Daar > zijn ze niet tevreden mee hoor. Het theoretisch gedeelte moet ook goed zijn > en als je dan afkomt met het argument dat je het toch moet implementeren > voor een goede werking, dat is niet goed. De ontwerper moet ervoor zorgen > dat diegene die implementeert die methode's zeker niet mag vergeten. Dat > zullen ze zeggen... Stop. Halt. Ademhalen. Pauze. Plasje doen. Beentjes strekken.... En daar gaan we weer. OVER ABSTRACTE KLASSES: Een abstracte klasse is een klasse met ��n of meerdere abstract methods (dit is overigens niet verplicht, nul abstract methods mag ook maar dan is het vrij zinloos om een klasse abstract te maken). Een abstracte klasse kan nooit, nooit, nooit worden ge�nstantieerd. Het is dus niet nodig om bang te zijn dat iemand jouw nog-in-de-steigers-staande klasse instantieert. Dingen vergeten kan dus niet. Om een klasse, die afgeleid is van een abstracte klasse of een interface (lees: een 100% abstracte klasse) te kunnen instantieeren is het noodzakelijk dat ALLE abstracte methods zijn ge�mplementeerd. Je kunt dit niet vergeten wat je krijgt van javac de compiler op je ... als je vergeet een abstracte method te implementeren. Nogmaals: niemand komt voorbij de compiler als je dit vergeet dus wees niet bang dat iemand een klasse 'half af' gebruikt. Alles dat maar enigszins nodig is voor de goede werking is dus aanwezig bij de uiteindelijke 'concrete' klasse. OVER LERAREN: Een leraar die van jou verwacht dat je een list verzint waardoor collega-programmeurs zaken niet kunnen vergeten is nogal parano�de bezig. Je kunt inderdaad de compiler gebruiken om deze check te doen maar uiteindelijk moet uit een test (zoek ook eens info over bijv. JUnit voor je leraren) blijken of je code goed werkt en je niets vergeten bent. Als je zo denkt moet je ook alle methods van je classes FINAL declareren, want o wee als er ooit toch eens een boze programmeur komt die jouw zorgvuldig gecomponeerde methods gaat overriden met allerlei lelijke en foute statements. Daarmee blokkeer je elk toekomstig hergebruik en je beschouwt jezelf als de beste programmeur ter wereld, want waarom zou iemand toch jouw code moeten overriden - die code is toch perfect, huh?!? Bovendien: het feit dat je een method niet vergeet te implementeren zegt nog altijd niets over de kwaliteit van die method. Dus je blindstaren op de implementatie van methods is onzin. Groeten, ook aan je leraren, Joost van Stuijvenberg
Technical Details
Message-ID:
<40560cef$0$566$e4fe514c@news.xs4all.nl>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!transit.news.xs4all.nl!not-for-mailReferences:
<Jt_4c.34333$9T2.2366510@phobos.telenet-ops.be> <c32bms$nkl$1@kools-online.com> <m2u10rw5ok.fsf@tiSateh.local> <iZ35c.34815$UP2.2354235@phobos.telenet-ops.be> <4054d432$0$558$e4fe514c@news.xs4all.nl> <J6h5c.35455$084.2422822@phobos.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: 107324,dabf0b8920a17871 X-Google-Attributes: gid107324,public X-Google-Thread: fcea4,dabf0b8920a17871 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2004-03-15 12:07:13 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!transit.news.xs4all.nl!not-for-mail Date: Mon, 15 Mar 2004 21:09:01 +0100 From: Joost <niet.versturen@email.bestaat.niet> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113 X-Accept-Language: nl, nl-be, en, en-gb, en-us MIME-Version: 1.0 Newsgroups: be.comp.programming,nl.comp.programmeren Subject: Re: interface of abstracte klasse? References: <Jt_4c.34333$9T2.2366510@phobos.telenet-ops.be> <c32bms$nkl$1@kools-online.com> <m2u10rw5ok.fsf@tiSateh.local> <iZ35c.34815$UP2.2354235@phobos.telenet-ops.be> <4054d432$0$558$e4fe514c@news.xs4all.nl> <J6h5c.35455$084.2422822@phobos.telenet-ops.be> In-Reply-To: <J6h5c.35455$084.2422822@phobos.telenet-ops.be> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Lines: 56 Message-ID: <40560cef$0$566$e4fe514c@news.xs4all.nl> NNTP-Posting-Date: 15 Mar 2004 21:07:11 CET NNTP-Posting-Host: 194.109.194.22 X-Trace: 1079381231 news.xs4all.nl 566 [::ffff:194.109.194.22]:10099 X-Complaints-To: abuse@xs4all.nl