2011-09-14 6 views
5

サービスロケータはかなり便利なコンセプトのように思え、私はそれを私のアプリに実装したいと思います。しかし、どのように実装し、他のプログラミングパラダイムと組み合わせて使用​​するべきかについて、いくつか質問があります。サービスロケータパターンについて

  1. SLがサービスを管理する必要がありますか?つまり、SLが破壊されると、サービス自体も破壊されるのか、それともサービスを登録した人にSLを残すべきですか?

  2. 依存性注入はどうですか? SLをパラメーターとして渡す際にSLがあるか、それともグローバルにアクセスする必要がありますか?結局のところ、DIの全体的な目的の多くはSLでカバーされているので、私は多くの機能をというもう1つのパラメータで混乱させたくありません。

答えて

8

あなたは、私はそれを参照する頻度を考慮すると、(私はしませんでした)、この記事を書いたと思うだろう:

Service Locator is an Anti-Pattern

依存性の注入は、あなたの依存関係を明示的になります。サービスの場所は実装にそれらを埋め込み、あなたのロケータに強く依存します。

+2

C#とJavaではすばらしい記事ですが、それほど大きなfot C++ではありません。 C++では、依存関係を挿入する方法を持たないコンストラクト(たとえば、オーバーロードされた新規および削除演算子)を提供しています。 –

+0

記事はjavaに関するもので、C++ではないので、あまり有用ではありません。 –