For example, it looks like the Observer, Mediator and potentially Proxy design patterns would be beneficial to utilise.