Simplify layers of indirection in implementation
lintool opened this issue · 0 comments
lintool commented
One thing that makes the codebase difficult to understand is that there are waaaay too many layers of indirection and classes that don't do much.
One opportunity for simplifying is this:
LeftIndexedMultiSegmentBipartiteGraph
LeftIndexedPowerLawMultiSegmentBipartiteGraph
The second extends the first and adds only minor implementation details. Why are they separate? I suppose you could have a graph that's not implemented with underlying power law edge pools, but why would you? Name a graph we're interested in that isn't a power law graph?
I suppose there's SmallLeftRegularBipartiteGraph
- but is that actually used for anything?
Anyway, if we collapse back classes like these, we can kill about half a dozen extra classes.
This is probably a task that's lower priority, though.