🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #2770

Re: interface of abstracte klasse?

#2770
From: Joost
Date: Mon, 15 Mar 2004 20:09
56 lines
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-mail
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>

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