Toon posts:

Vraag mbt te implementeren patroon

Pagina: 1
Acties:

Onderwerpen


  • xces
  • Registratie: juli 2001
  • Laatst online: 25-11 16:46

xces

To got or not to got..

Topicstarter
Ik wil het volgende implementeren, maar ik weet niet of het een patroon is en zo ja wat de naam van het patroon is en of ik misschien op andere zoekwoorden moet programmeren.

Ik wil een boom (XML bestand) samenstellen door 'componenten' aan te klikken die in het XML bestand moeten komen. Per component wil ik eigenlijk aangeven welke andere componenten erbij horen en dit moet recursief zijn. Het gaat uiteindelijk om een deployment van een stuk software wat uit componenten bestaat.

Als voorbeeld;
Component A
Component B
Component C
Component D

Ik klik aan dat ik "component C" wil hebben. Voordat ik "component C" kan deployen moet ik ook "component A" uitrollen, maar voordat ik "component A" kan uitrollen moet ik weer eerst "component B" en "component D" uitrollen.

Uiteindelijk wil ik dat de XML er dus als volgt uit komt te zien (let op de volgorde):
xml
- Component B
- Component D
- Component A
- Component C

Is hier een patroon voor, en zo nee, hoe zou ik zoiets kunnen implementeren zonder dat ik conflicten krijg (circular references)?

  • Janoz
  • Registratie: oktober 2000
  • Laatst online: 00:08

Janoz

Moderator Devschuur®

!litemod

Zoekwoord wat je nodig hebt is iig "dependency management" en "dependency resolver". Daarvoor zijn al talloze tools beschikbaar. Maar mocht je desondanks toch een eigen wiel willen maken dan zul je iets doen waarbij je per component aan kunt geven van welke andere componenten hij direct afhangt. Je tool kan vervolgens inderdaad recursief de boel doorlopen om te kijken wat er allemaal nodig is. Het op volgorde zetten is vervolgens niks meer dan er voor zorgen dat een item altijd VOOR de items staat die van hem afhankelijk zijn. (Meest rudimentaire implementatie is om telkens het component aan de lijst toe te voegen die niet afhankelijk is van de rest van de overgebleven componenten) Circulaire references kunnen NIET voorkomen worden door je tool. Je tool moet ze detecteren en vervolgens de ontwikkelaar op zijn flikker geven dat hij de afhankelijkheden niet goed gelegd heeft.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Kwistnix
  • Registratie: juni 2001
  • Laatst online: 01:30
Ik heb pas een boek gekocht dat ingaat op modulariteit en afhankelijkheden en patterns daaromtrent: Java Application Architecture - Modularity Patterns with Examples using OSGi. Ik ben er nog lang niet doorheen, maar ik ben er tot nu toe zeer over te spreken. De focus op Java is eigenlijk vrij beperkt tot (tot nu toe) een paar code voorbeelden en het gebruik van JAR files als de meest logische container voor een module. Over OSGi wordt geloof ik pas verderop in 't boek gebruikt om voorbeelden toe te lichten, dus de titel schrikt misschien ten onrechte af.

  • Feanathiel
  • Registratie: juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Mocht je specifiek naar het algoritme op zoek zijn die de volgorde van items bepaald, dan ben je op zoek naar een topological sort. Uiteraard is er ook bestaande software die dit al voor je doet zoals hierboven te zien is.


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee