Golang — Mediator Pattern

Matthias Bruns
4 min readMar 24, 2023

The Mediator Pattern is a behavioral design pattern that helps to reduce the complexity of communication between objects by centralizing it through a mediator object. This pattern is part of the “Gang of Four” design patterns and it can be useful in scenarios where the communication between objects is becoming too complex and unmanageable.

In this article, we will explore how to implement the Mediator Pattern in Golang and provide a realistic code example.

Example Scenario

Let’s imagine a scenario where we have a chat room application where multiple users can join and send messages to each other. In this case, we can have a mediator object that will handle the communication between the users.

Implementing the Mediator Pattern in Golang

To implement the Mediator Pattern in Golang, we will start by defining an interface for our mediator object. This interface will define the methods that our mediator object will use to communicate with the different objects in our system.

type mediator interface {
addUser(user user)
sendMessage(sender user, message string)
}

In the code above, we define our mediator interface with two methods: addUser and sendMessage. The addUser method will be used to add new users to…

--

--

Matthias Bruns

Senior Freelancer & Technical Lead Working as a Golang developer since 2020. as a mobile developer since 2013. Focussed on architecture & testability.