手順 - 新しい BreadCrumbDelegate クラスの作成
BreadCrumbDelegate クラスの作成
階層リンク委任クラスは BreadCrumbDelegate インタフェースを実装する必要があります。このインタフェースには、canHandle()getGenerator() という 2 つのメソッドがあります。
canHandle() メソッドは、それぞれの委任ファクトリによって呼び出されて、委任の内部 AbstractBreadCrumbGenerator クラス (以下を参照) が所定のページの階層リンクを生成できるかどうかを特定します。canHandle() メソッドには、ページの URL、URL のコンテキストオブジェクト (存在する場合)、URL のコンテナオブジェクト (存在する場合) が渡されます。true または false を返す必要があります。
それぞれのコントローラは、ファクトリによって選択された委任の getGenerator() メソッドを使用して、その内部 AbstractBreadCrumbGenerator クラスの新しいインスタンスを取得します。
* 
ファクトリは各委任の静的インスタンスを 1 つしか作成しないため、委任クラス自身がクラスインスタンス変数を使ったり、ステートフルであったりしてはいけません。
AbstractBreadCrumbGenerator インナークラスの作成
委任クラスは、AbstractBreadCrumbGenerator のサブクラスであるインナークラスを持つ必要があります。インナークラスの getBreadCrumbs() メソッドは、BreadCrumbController によって呼び出されて、階層リンクの BreadCrumbArray を生成します。インナージェネレータクラスの新しいインスタンスは呼び出されるたびに作成されるため、ジェネレータクラスはステートフルでも構いません。
ジェネレータクラスのコンストラクタは、ページの URL、ページのコンテキストオブジェクト (URL で指定された場合)、およびページのコンテナ (URL で指定された場合) に渡されます。サポートされている API を使用して、階層リンクを返す BreadCrumbArray を構築します。
クラスの例については、サンプルコードを参照してください。
これは役に立ちましたか?