posts: multiple-dispatch: add visitor downside

This commit is contained in:
Bruno BELANYI 2022-11-02 16:03:25 +01:00
parent 0cb79dc69e
commit bb48eaea34
1 changed files with 10 additions and 0 deletions

View File

@ -185,6 +185,16 @@ e.g: compilers, where the AST class hierarchy represents the data *only*, and
all compiler stages and optimization passes are programmed by a series of
visitors.
One downside of this approach is that if you want to add `SpaceStation` as
a sub-class of `SpaceObject`, and handle its collisions with other
`SpaceObject`s, you need to:
* Implement all `collide_with` methods for this new class.
* Add a new virtual method `collide_with(SpaceStation&)` and implement it on
every sub-class.
This can be inconvenient if your class hierarchy changes often.
## Multiple dispatch on a closed class hierarchy
When even double dispatch is not enough, there is a way to do multiple dispatch