Goede avond allemaal,

Ik ben al enige tijd bezig met het uitdenken van een CMS. Ik probeer zoveel mogelijk functionaliteiten in te voegen zodat ik gelijk op veel punten terecht kom en zoveel mogelijk leer. Dat is immers het voornaamste doel van dit project.

Nu heeft Wouter J mij in een vorig topic behoorlijk geholpen. Aan de hand hiervan ben ik toch nog verder gaan zoeken naar uitleg over interfaces en abstract classes. Ik vroeg mij nu af gebruik ik het nu niet overkill? Is mijn huidige opzet wel OOP? Zou ik hiermee verder kunnen als ik een simpele cms wil bouwen? Mis ik dingen?

Mij nieuwe opzet is hier te vinden: klikerdeklik

Altijd in voor opbouwende kritiek.

Gr, Milo
Joren heeft het volgens mij ook goed uitgelegd op zijn site.


Een interface stelt je in staat om aan te geven dat een object een bepaalde functionaliteit moet bezitten, maar het bepaalt niet hoe het object dat moet doen. De child class is dus vrij om de hele implementatie te doen, zolang hij maar voldoet aan de functionaliteit die de interface afdwingt.


en hij somt ook de belangrijkste verschillen


Abstract classes
Een abstract class kan bepaalde functionaliteit definiƫren en de rest overlaten aan de child.
Een child kan de reeds gedefinieerde methods overschrijven, maar hoeft dat niet.
De child class moet een logische relatie hebben met de parent.
Een child kan maximaal een abstract class extenden.

Interfaces
Een interface kan geen functionalteit bevatten. Het is enkel een definitie van de methods die gebruikt moeten worden.
De child class moet alle methods uit de interface van functionaliteit voorzien.
Verschillende niet gerelateerde classes kunnen op een logische manier gegroepeerd worden door een interface.
Een child kan meerdere interfaces tegelijkertijd implementeren.



Ik heb dat anders begrepen.. Nu met jou voorbeeld ben ik daar uit. Ik zal het vanavond toepassen op het model om te kijken of ik het daadwerkelijk goed doe.

Maar we hebben het nu constant over de interfaces, maar ik vraag me ook af of iemand zou kunnen bevestigen dat derest van de logica goed zit?
Zou je dat hier willen posten ? :)
Reshad, die staat in het documentje waarnaar je linkt.

Milo, plaats liever niet hier. Misschien wel even uitwerken in een UML diagram en die hier plaatsen of even een pastbin aanmaken ofzo.
@ Reshad; ik upload steeds een Word documentje.

Ik zal zodra ik thuis ben kijken of ik een UML diagram kan maken. Dan upload ik die ook wel
Zet het dan in ieder geval op pastebin o.i.d. zoals wouterJ zegt want via word is het een beetje onoverzichtelijk. of inderdaad een UML diagram
Ik ben nu thuis en ga aan de slag met het maken van de UML. Hiervoor gebruik ik ArgoUML. Iemand andere programma's die wellicht beter / gemakkelijker zijn hiervoor?
Ik gebruik Visual Paradigm UML free edition, maar dat is niet echt makkelijk te noemen...
Dat is ArgoUML ook niet echt, vandaar dat ik het vraag... Ik ga het straks anders tekenen dan kan ik de tijd nemen voor Argo / Visual Paradigm UML

[size=xsmall]Toevoeging op 18/01/2013 19:38:50:[/size]

Ik heb hem maar even gewoon getekend op de computer. Bekijk hier het resultaat.
- role interface
Volgens mij hoef je hier een constructor alleen niet in een interface te zetten. dat is weer een voorbeeldje waarbij je een abstracte klasse kan maken. ( als je alleen de constructor mee geeft om iets te doen ) en deze extenden met zijn eigen methods.

idem dito voor de Customer.

Voor de UserMapper zou ik juist een interface gebruiken om de CRUD methods vast te leggen. ( Create, Read, Update en Delete )

idem dito bij de image mapper

en wat is Database een klasse of een interface?

Reageren