[ontwerp] verschillende datastructuren

Pagina: 1
Acties:

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Gisteren ben ik nogal productief geweest :P . Ik heb eens enkele datastructuren geimplementeerd in Java.
Nu heb ik nog maar enkel een Red-Black tree geimplementeerd, maar ik zou natuurlijk verder willen gaan door nog trees te maken (Heap, ...)

Dat geheel van implementaties zou ik in een goed, professioneel ontwerp willen gieten.

Overlaatst heb ik een goed boek over Design Patterns gelezen (Design Patterns Explained) waarin vooral het Bridge-Pattern zeer goed en duidelijk staat in uitgelegd. En ik denk dat ik dit pattern min of meer zou kunnen gebruiken.

Ik zou nu een Priority-queue willen maken die gebruik maakt van een Heap. Er bestaat een Min-priority queue, die gebruik maakt van een Min-Heap. Maar er bestaat ook een Max-priority queue die gebruik maakt van een Max-Heap.


Max-P-queue en Min-P-queue zouden dan resp. een instantie van Min-Heap en Max-Heap bevatten. Eigenlijk zou Heap ook een interface kunnen zijn.

Wat vinden jullie van een dergelijk ontwerp? Zit hier inderdaad een Bridge-Pattern in, of vernis ik mij?

Afbeeldingslocatie: http://users.pandora.be/fgzone/class%20diagram.png

[ Voor 25% gewijzigd door Feyd-Rautha op 29-09-2004 16:30 ]

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:52
RedBlackTree en heap implementeren die ITree interface?

Min-heap en Max-heap inheriten van Heap?

en die max en min queue's implementeren IPriorityQueue?

Ik zie hier niet echt een bridge-pattern in, aangezien je met een bridge pattern een class hebt die een bepaalde implementatie gaat gaan gebruik van een interface.
Zoals jij het nu beschrijft, is dat gewoon 'inheritance en composition', maar niet echt een bridge pattern.

Maar goed, als die structuur jouw probleem oplost, is dat natuurlijk niet verkeerd. Patronen zijn middelen, en geen doelen.

https://fgheysels.github.io/


Verwijderd

Op ITree zou je bv ook een Iterator-patroon los kunnen laten. De link tussen geimplementeerde Iterator en geimplementeerde ITree is weer Bridge. Die weer te configureren is met Abstract Factory. Oh boy, feest der patronen :9~ .