Mediator
There's no way around it. The Mediator design pattern is simply a control freak. It doesn't like it when one object speaks to the other directly. It gets mad sometimes when that happens. No, everybody should speak only through him. What's his explanation? It reduces coupling between objects. Instead of knowing some other objects, everybody should know only him, the Mediator.
Trouble in the Jungle
Architectural jokes aside, we, the Maronic development team, have some real problems. And they're not related to code directly. As you may remember, our little indie company consists of only me, a canary named Michael that acts as a product manager, and two cat designers that sleep most of the day, but do produce some decent mockups from time to time. We have no QA (that's quality assurance guys) whatsoever. Maybe that's one of the reasons our game keeps crashing all the time.
Lately, Michael has introduced me to a parrot named Kenny
, who happens to be QA:
interface QA { fun doesMyCodeWork...