Ik heb een probleem met het opzetten van m'n js architectuur, de algorithhhhmes is het probleem niet, maar ik kom er even niet uit hoe ik een en ander netjes in elkaar draai, dus tips zijn wat dat betreft welkom.
Ik heb een prototype, TimeWindow wat een periode in de tijd voorsteld. Dit prototype heeft onder andere een from en een to property. Hiervan afgeleid is een ander prototype, TaskWindow, wat ook nog een name en een numberOfPeopleNeeded property heeft. Dit stelt een taak voor, die een bepaalde periode in de tijd beslaat en een naam en aantal personen die die taak uit moeten gaan voeren heeft:
Nu heb ik een setje operaties die plaatsvinden op arrays van TimeWindows, namelijk het uitrekenen van de unie, intersectie en verschil van twee arrays van TimeWindows. Aangezien dit operaties zijn op arrays, is dit dus niet te implementeren als method van de prototypes. Wat ik nu even heb gedaan is ze implementeren als static van het TimeWindow prototype:
Deze functies maken op hun beurt allemaal weer gebruik van eenzelfde functionaliteit, die ik dus voor het gemak maar even naar buiten heb gehaald. Dit is namelijk het berekenen van de zgn edgeMap van een array van windows. Deze geeft een op tijd gesorteerde array terug van alle begin en eind tijdstippen van de windows in het array.
Wat nu het geval is, is dat voor taskWindows precies hetzelfde moet gebeuren, alleen dan zijn die functies een klein beetje anders, wat zich dus perfect leent voor wat overerving, maar dat is in deze setup dus een tikje niet te doen
Dus:
- ik ben niet helemaal gelukkig met de huidige setup
- ik wil ongeveer dezelfde functies implementeren voor arrays van TaskWindows
- hoe kan ik dit nou het netste doen?
Ik heb een prototype, TimeWindow wat een periode in de tijd voorsteld. Dit prototype heeft onder andere een from en een to property. Hiervan afgeleid is een ander prototype, TaskWindow, wat ook nog een name en een numberOfPeopleNeeded property heeft. Dit stelt een taak voor, die een bepaalde periode in de tijd beslaat en een naam en aantal personen die die taak uit moeten gaan voeren heeft:
JavaScript:
1
2
3
| function TimeWindow(from,to) {} function TaskWindow(from,to,name,numberOfPeopleNeeded) {} TaskWindow.prototype = new TimeWindow(); |
Nu heb ik een setje operaties die plaatsvinden op arrays van TimeWindows, namelijk het uitrekenen van de unie, intersectie en verschil van twee arrays van TimeWindows. Aangezien dit operaties zijn op arrays, is dit dus niet te implementeren als method van de prototypes. Wat ik nu even heb gedaan is ze implementeren als static van het TimeWindow prototype:
JavaScript:
1
2
3
| TimeWindow.unite = function(twArray1,twArray2){} TimeWindow.intersect = function(twArray1,twArray2){} TimeWindow.subtract = function(twArray1,twArray2){} |
Deze functies maken op hun beurt allemaal weer gebruik van eenzelfde functionaliteit, die ik dus voor het gemak maar even naar buiten heb gehaald. Dit is namelijk het berekenen van de zgn edgeMap van een array van windows. Deze geeft een op tijd gesorteerde array terug van alle begin en eind tijdstippen van de windows in het array.
Wat nu het geval is, is dat voor taskWindows precies hetzelfde moet gebeuren, alleen dan zijn die functies een klein beetje anders, wat zich dus perfect leent voor wat overerving, maar dat is in deze setup dus een tikje niet te doen
Dus:
- ik ben niet helemaal gelukkig met de huidige setup
- ik wil ongeveer dezelfde functies implementeren voor arrays van TaskWindows
- hoe kan ik dit nou het netste doen?