"Manager"というラベルのクラスがたくさんあります。マネージャークラスはどのように使用されますか?例えばマネージャクラスの目的は何ですか?
のように、それは、組成によって慣れるん:それは通常、誰かがデザインパターンとdoesntのノウハウを実施している(またはdoesntのは、使用したい)それのための正式名称を意味
var m:Mananger = new ManagerClass();
m.doSomething();
"Manager"というラベルのクラスがたくさんあります。マネージャークラスはどのように使用されますか?例えばマネージャクラスの目的は何ですか?
のように、それは、組成によって慣れるん:それは通常、誰かがデザインパターンとdoesntのノウハウを実施している(またはdoesntのは、使用したい)それのための正式名称を意味
var m:Mananger = new ManagerClass();
m.doSomething();
このようなクラスは、しばしばリソースである別のクラスのオブジェクトのセットを管理するために使用されます。
たとえば、データベース接続のプールがあり、それぞれがDBConnection
クラスのオブジェクトで表されているとします。
コードを接続プール経由でDBに接続する必要がある場合は、単に新しい接続をDBConnection_Manager
クラスに問い合わせます。なぜマネージャークラスが必要なのですか?
Managerクラスは、そのDBConnectionオブジェクトのリストを調べて、割り当てられていないものがあるかどうかを判断して戻り値を返します。すべてが割り当てられている場合は、プールを作成してプールに追加するか(最大接続許容限度に従う)、キューに要求を配置するか、失敗を報告します。
この機能はすべて、発信者から隠されています。プールを管理するためのきめ細かな詳細は、Managerクラスの仕事です。
これは具体的な例ですが、リソース管理は集中管理され、Managerクラスでカプセル化され、ユーザーコードは単に「リソース」を要求するという考えがあります。私はそう言って、少なくとも一つのウェブページを見つけたものの
は、私は、このアプローチのための正真正銘の「デザインパターン」があるかどうかわからない:http://www.eventhelix.com/realtimemantra/ManagerDesignPattern.htm
更新:アクションスクリプトの場合は、そのようなクラスは、サウンドやイベントリスナ、GUIウィジェット(コンテキストメニューなど)の管理に使用できます。
。意味のある結論を導くためにコードを読む必要があります。
マネージャクラスは、何とか他の場所には適合しなかったコードの一般的な場所です。彼らはまた、god classesになる傾向があります。
Someは、管理者が私の意見ではcode smell
私はちょうどそのような質問をするつもりでした、そして、この答えは私の期待を上回りました。ところで、 'some'は本当にクールな男です。 – alehro
ボブおじさんもやっています。 http://programmers.stackexchange.com/questions/17100/clarify-the-single-responsibility-principle – weltraumpirat
であると考えて、マネージャクラスは、これらの条件で使用する必要があります。
max
またはmin
を選択するなどのいくつかの先進機能を提供する必要があります
私はそれが –
@ M28のものを管理していると信じています。コードが難読化されていない場合はありません。 – MusiGenesis
私は推測することはできません...しかし、私は "マネージャ" - サフィックスは、 "OrderManager"、 "CustomerManager"などのビジネス層のクラスに使用されるいくつかのプロジェクトを見てきました – Ozzy