Ik wil ook codeblocks in Java
Vandaag moest ik een stukje code aanpassen. Een composite object dat een soort wrapper is om een xml document heen. Het kan gevoed worden door twee verschillende types xml documenten, maar representeert wel altijd het zelfde object. Je moet alleen andere xml elementen uitlezen om tot dezelfde informatie te komen. In eerste instantie dacht ik twee factory methods te maken met verschillende input die uiteindelijk hetzelfde soort object opbouwen. Dit is uiteindelijk de nette oplossing, maar het betekende wel dat ik heel veel moest gaan ombouwen. De huidige implementatie keek on demand naar de juiste xml elementen om een waarde terug te geven.
Maar als ik nou per property een codeblock opgeef met het algoritme om de juiste waarde op te halen? Dan geef ik in de factory method aan de hand van het type input document de juiste implementatie mee. Dit kan in java ook met een anonymous inner class. Ik moest daarvoor wel eerst een interface definieren en uiteindelijk is de code er qua leesbaarheid niet op vooruit gegaan. Toen ik pas met java begon was dit altijd het moeilijkst voor mij: het lezen van code met anonymous inner classses. Veels te veel curly braces. Gelukkig hoef ik met beginners geen rekening te houden op dit project, maar toch…
Codeblocks in smalltalk zijn veel leesbaarder en leer je er ook vanaf het begin mee omgaan. Ik zit me wel af te vragen in hoeverre ik door smalltalk beinvloed ben in het kiezen van deze oplossing en of dit voor java wel “The Simplest Thing That Could Possibly Work” is.
todo: code van zowel smalltalk als java toevoegen
