[Go言語]Mediatorパターンを学ぼう!

こんにちは、KOUKIです。

この記事では、デザインパターンの一つであるMediatorパターンについて紹介します。

デザインパターンまとめ

シチュエーション

Mediator は、「仲裁人」を意味する英単語です。

Mediator パターンは、多数のオブジェクト(Go言語ではインスタンス)の間の調整を行いつつ、特定の処理を進める必要がある場合に適したパターンです。

例えば、チャットを例にあげましょう。

一般的なチャットでは、ユーザー間(多数のオブジェクト)にコネクション(調整)を貼り、その間でメッセージのやりとり(特定の処理)を行います。

Mediatorパターンのサンプルに適していそうなので、実装してみましょう。

Mediatorパターンの適用

簡単なチャットプログラムを実装します。

User構造体

User構造体を実装します。

User構造体のメソッド

次に、User構造体のメソッドを実装します。

ChatRoom構造体

次に、ChatRoom構造体を実装します。これが、Mediatorになります。

ChatRoom構造体のメソッド

ChatRoom構造体のメソッドを実装します。

使ってみよう

ここまで実装したサンプルプログラムを使ってみましょう。

OKですね。

ChatRoom(Mediator)を介して、Userインスタンス同士がメッセージのやりとりをできるようになりました。

機能の追加

プライベートなメッセージを送れるようしましょう。

なかなか面白いです。

まとめ

個人的に、Mediatorパターンを実務で使用するイメージがあまり湧きませんでした。

まだ慣れていないだけかもしれませんが^^;

時間があれば、本記事で紹介したチャットプログラムとは別のサンプルも紹介したいと思います!

それでは、また!

Go言語まとめ

ソースコード

別パターンのChatプログラム

本記事で説明したプログラムより、少し簡略化したChatプログラムも載せておきます。

コメントを残す