どこでケンアウアーによって普及イネーブラパターンの詳細を見つけることができますか?
-
11-09-2019 - |
質問
彼の著書のエクストリーム・プログラミング応用のでは、ケン・アウアーは何気なくイネーブラパターンを言及しています。ケント・ベックも(2004年11月8日付けのメールで非常に少なくとも)それに言及したが、私はいつもの場所ですべての詳細を見つけることができませんでした(グーグル、c2.comでのwiki、など。)
私はより多くを見つけることができますどこに?
解決
イネーブラパターンは本当にObserverパターンの単なるバリエーションです。あなたは条件を作成し、システムの興味深い部分にオブザーバーを設定します。イネーブラは、条件を遵守し、有効/無効のウィジェットを有効にすることができます。
例えば。あなたはウィンドウをロードするとき、あなたは、リストまたはコンボボックス(またはリストやコンボボックスの下にモデル)が選択された何かを持っているかどうかのようなものを見て条件を作成します。あなたは「somethingSelectedCondition」のようなもの、それを呼び出すことができます。その後、1つまたは複数の条件(一般的に、あなただけの練習で一緒にしたいし、それらにもかかわらずすることができますおよび/または一緒に...)に関連付けられているウィジェットにイネーブラをフックます。
私は通常、あなたが渡すパラメータの一つは、互いにANDとき、ウィジェットを有効/無効、名前の条件の配列であるようなウィジェットの工場を持っていることによって、それらを実装します。例えばます。
widgetFactory.createButton(文字列BUTTONLABEL、文字methodActionName、文字列[] conditionNames)
conditionNamesは、HashMapののいくつかの並べ替えで利用可能な条件を調べるCompositeCondition(条件の観測されたブール値の論理積全てを)クリートとCompositeConditionに耳を傾け、に作成したウィジェットを伝えるイネーブラーを作成します有効/根本的な条件に基づいて無効にします。
これは少し複雑に聞こえるが、あなたは、基盤となるインフラストラクチャを作成したら、コードワイヤーのラインのカップルまで、あなたの条件、およびユーザ・インタフェースは、条件と常に同期しています。
私は私が今まで正式にイネーブラパターンを書いたとは思わない、または私はちょうどURLにあなたを指すと思います。
HTH、
ケン