私はしばしば次のようなことをしたいと思っています:
class Foo{
public static abstract String getParam();
}
Foo のサブクラスにパラメーターを返すように強制します。
私はあなたがそれをすることができないことを知っています、そして私はあなたがそれをすることができない理由を知っていますが、一般的な代替手段は次のとおりです。
class Foo{
public abstract String getParam();
}
パラメーターの値を知りたいだけで、クラスのインスタンス化に費用がかかる場合は役に立たないインスタンスが必要になるため、満足できません。
「定数インターフェイス」アンチパターンを使用せずに、人々がこれをどのように回避するかを知りたいと思います。
編集:私は特定の問題についてさらに詳細を追加しますが、これは私がこのようなことをしたいと思ったときのことです。過去には他にもいくつかありました。
私のサブクラスはすべてデータ プロセッサであり、スーパークラスはそれらの間の共通コードを定義します。これにより、データを取得して解析し、必要な場所に配置できます。各プロセッサは、SQL データベースに保持されている特定のパラメータを必要とします。各プロセッサーは、必要なパラメーターのリストとデフォルト値を提供できる必要があります。これにより、各プロセッサーのタイプに必要なパラメーターを確認することで、構成データベースを検証またはデフォルト値に初期化できます。プロセッサのコンストラクターで実行することは受け入れられません。これは、オブジェクト インスタンスごとに 1 回ではなく、クラスごとに 1 回だけ実行する必要があり、各タイプのクラスのインスタンスがまだ必要でない場合にシステムの起動時に実行する必要があるためです。