// For best example of this pattern is // StrangeIoC https://strangeioc.github.io/strangeioc/ // Zenject https://github.com/modesttree/Zenject void Start() { var ballObserver1 = new Ball(Ball1, new JumpHigh()); var ballObserver2 = new Ball(Ball2, new JumpLittle()); var ballObserver3 = new Ball(Ball3, new JumpMedium()); messenger.AddObserver(ballObserver1); messenger.AddObserver(ballObserver2); messenger.AddObserver(ballObserver3); }