問題
カスタムVisualforceコントローラとして使用するクラスの要件は何ですか。
- PageReferenceを返すコンストラクタを持つ最上位のApexクラス
- PageReferenceを拡張する最上位のApexクラス
- デフォルトの引数なしコンストラクタを持つ最上位のApexクラス
- コントローラインターフェースを実装した最上位のApexクラス
正解
- PageReferenceを返すコンストラクタを持つ最上位のApexクラス
- PageReferenceを拡張する最上位のApexクラス
- デフォルトの引数なしコンストラクタを持つ最上位のApexクラス
- コントローラインターフェースを実装した最上位のApexクラス
解説
それぞれの選択肢の理由について説明します。
□ PageReferenceを返すコンストラクタを持つ最上位のApexクラス
これは不正解です。Visualforceコントローラの主要な要件は、PageReferenceを返すコンストラクタを持つことではありません。コントローラは、VisualforceページとApexコードの間のロジックを処理するためのものであり、特定の型のコンストラクタを持つ必要はありません。
□ PageReferenceを拡張する最上位のApexクラス
これは不正解です。一般的に、PageReferenceを直接拡張することはカスタムVisualforceコントローラの作成には不適切です。PageReferenceはVisualforceページや外部URLへのリダイレクトを表すクラスであり、コントローラの主要なロジックを実装するためのものではありません。
□ デフォルトの引数なしコンストラクタを持つ最上位のApexクラス
これは正解です。カスタムVisualforceコントローラとして使用するApexクラスは、デフォルトの引数なしのコンストラクタを持つ必要があります。このコンストラクタは、Visualforceページがロードされるときに自動的に呼び出されます。
□ コントローラインターフェースを実装した最上位のApexクラス
これは不正解です。Visualforceコントローラとして使用するApexクラスが特定のインターフェースを実装する必要はありません。ただし、特定の機能を持つコントローラを作成する場合、インターフェースの実装が役立つ場合がありますが、これは必須の要件ではありません。
コメント