Updating-pattern in extended classes

Hey people…
I’m in need to create a data-structure for a mesh-representation. This is not a problem at all.
The thing I don’t understand is how I should update the elements without doing redundant calculations.

Lets consider a simple case:
I have a class ‘Node’ which in fact is just a THREE.Mesh (nevermind)
Then there is a class ‘Edge’ which in fact is a THREE.Line… this has to be updated with any change of Node’s position at start and end of the ‘Edge’.

Now the problem pops up. I want to extend the class ‘Edge’ by something like ‘EdgeMidSphere’… Here a sphere at the middle of the ‘Edge’ will be created/updated…

I tried to handle the update-logic within ‘updateMatrixWorld’… But it looks like its not the right place to go…

Can anybody help me to figure out a good pattern todo such a thing, without re-calculate all the geometry over and over again…
(Note the the ‘EdgeMidSphere’ is just a simple example. Other classes extending ‘Edge’ do heavy calculations on updates of the corresponding 'Node’s…

hope for help…
thanks in advance…
greets Mark

NOTE THE ATTACHED CODE
UpdateProblems.js (4.8 KB)