unity – Should the interaction between the player and world objects be handled from the player class or as an event from the object classes?

Suppose you’re making a 3D platformer like Super Mario, if you jump on a Goomba, does Mario (the class) know that it just landed on a Goomba and then tell that Goomba to die, or does the Goomba realize that he is being smashed and dies ?

I want to go with the first approach but it will end up with a huge If/then (or Switch/Case) script, also the reason why this is “problematic” is that many objects will make the player have a “reaction”, for example if you land on a Goomba, you don’t just kill it, but it forces you to jump, that jump event, what’s the best way to handle it ?