Nedarvs Eksempel - er dette godt nok??

Tags:    java

<< < 12 > >>
Hej med jer,
Jeg skal forklare muligheder og begrænsninger inden for Nedarv til eksamen, og er kommet lidt i tvivl mht et eksempel jeg gerne vil fremføre. Den eneste begrænsning jeg kan komme på, er at der ikke findes multipel nedarvning i Java sproget.
Det vil jeg gerne illustrere med et eksempel som i kan se her: http://www.mnemic.com/Inheritance_Example.jpg - jeg har ikke brugt mit UML værktøj men bare et andet grafisk program.

Student arver fra Person klassen, og Student bliver også til Employee, man kan ikke have det hele i moderklasser derfor bliver man nød til at oprette en ny klasse som både henter fra Student og Employee. Studenten er en aggreggering og har en relation til Employee klassen, og begge klasser kommunikere med den mere "overordnet" klasse som er komposition (sorte diamant) StudentEmployee.
Har jeg nu gjort dette rigtigt??



Hjælp påskønnes!
På forhånd 1000 mange tak.



Kristen Nygaard udviklede sideløbende oop paradigmet, men lagde stor vægt på begreber og fænomer princippet.

hvis vi omformulerer dit eksempel til et kompositionelt design, her definerer vi felt som et interface (og laver evt. en abstrakt implementation hvis der er masser af boilerplate kode).
i mine øjne er skov og vej noget der ligger oven på et felt (det kan dog diskuteres om det flueknepperi), så derfor laver vi implementationer gras, bjerg og vand. skov og vej, laver vi som dekoratorer, da vi så får den fleksibilitet at vi kan have vej gennem skoven, op ad bjerget, samt fræse grasmarken, eller fisk i vandet for den sags skyld.

i den anden del er creature igen et interface (kan egentlig også godt være en klasse).

AgrassiveNPC, friendlyNPC og player er således styrings strategier (Strategy Pattern), som kan plugges ind i et creature, og defineret med sit eget interface(StyringsStrategi).

Animal, Humanoid, Demon, Undead, er blot et udseende, og kan køres også bare igennem et strategy pattern.

fordelen ved dette er at det f.eks. bliver nemmere at implementere en NPC med gruppe bevidsthed, uanset om det er et animal eller en Undead, da du ikke skal ændre i nogen af de andre klasse, Change by addition.



Hvad med at skrive en artikel med et realistisk kode eksempel, kunne være spændende at læse, alvorligt ment.



Hvad synes du overskriften skal være? og hvilken teknologi?



hvis den har et navn som Oject Orient Programming(OOP) ville det vel være nærliggende at bruge det :).

det må du selv om, men ville da fortrække Java, kun fordi jeg ikke kan lide c++ :).



Det kunne være fedt med sådan en artikel :D



Jeg stemmer også for en artikkel om dette emne, og gerne med et godt illustreret eksempel.



<< < 12 > >>
t