[Go言語]Builderパターン ~Parameter~

こんにちは、KOUKIです。

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

今回は、インスタンスの生成なしで、開発者が特定の機能を利用する方法を学びましょう。

シチュエーション

ある開発者が、Emailの送信機能を実装したとします。

このsendMail関数を別の開発者が利用するとき、インスタンスを生成してからそれをパラメータとして渡すと思います。

しかし、Builderパターンを利用するとインスタンスを生成しなくても、sendMail関数を利用できる面白い実装が行えます。

Builderパターン Parameterの実装

早速、実装していきましょう。ちなみに、今回はコンストラクタを実装しません。

Builder構造体を作成

最初に、Building(建築)する対象を決めます。今回は、Emailですね。

パラメータ設定メソッドの実装

次に、パラメータを設定するメソッドを定義します。

ポインタ付きのEmailBuilderを戻り値として、定義しておきましょう。

ビルド関数の定義

次に、ビルド関数を定義します。

このビルド関数は、次のように利用します。

使ってみる

それでは、早速使ってみましょう。

SendEmail関数には、パラメータとして関数が必要なので、無名関数を渡しました。

注目していただきたいのが、利用者側ではインスタンスを生成していないというところです。

こんな感じでも実装可能なので、とても面白いと思います^^

次回

次回は、BuilderパターンのFunctional Builderバージョンを学びます。

Go言語まとめ

ソースコード

コメントを残す