/note/tech

Goでのサービスロケータパターン

サービスロケータはアンチパターンと言われていますがGoのStructual Subtypingと組み合わせれば実はきれいに実装できるんじゃないかと思っています。

なのでプログラム全体でサービス群を共有するための箱として使うには結構よい手法で見直してよいのではないかと思い本記事を書きました。

Pythonでは動的にモジュールを改変できるからDI要らないのではという事も思ったけど、サービスロケータで一元管理するのも悪くなさそう。

Pythonの場合はDuckTypingで属性名さえあっていればとりあえず実行できるので。

サービスロケータがアンチパターン化するのは静的な言語に特有な話なんだろうか? そこがわからない。

関連: