この種の設計が正しいか、間違っているか、またはその両方かを知りたいです。
複数のコンポーネント (オブジェクト) を持つアプリがあり、それぞれに構成 (フラグ、機能など) があります。いつでも、オブジェクトから構成を取得したいと考えています。
そのために、私はこれをしました:
class ConfigRetriever {
public String getConfigString() {
String configString = "";
configString += "component 1 flag : "+component1.getFlag()+"\n";
configString += "component 2 flag : "+component2.getFlag()+"\n";
// ...
return( configString );
}
}
他の場所で、構成が必要な場合:
class SomeClass {
public void someMethod() {
ConfigRetriever configRetriever = new ConfigRetriever();
String configString = configRetriever.getConfigString();
// Do some stuff with configString...
}
}
私はオブジェクト プログラミングにまったく慣れていませんが、特定の 1 つのアクションだけのためにオブジェクト (ConfigRetriever) を作成するのは奇妙に感じます (オブジェクトが他のことを実行できる場合でも)。
私はシングルトンパターンについても考えましたが、次のようなものがあります:
String configString = ConfigRetriever.getInstance().getConfigString();
きれいな線ですが、オブジェクトはアプリの最後までメモリに残るため、何が正しくて何が間違っているのかよくわかりません。
私のデザインはもっと良くなるでしょうか?どのように ?なんで ?
更新
回答ありがとうございます。私の質問は少し乱雑で、私が求めていたものについての要点を逃したと思います.
構成とコンポーネントのストーリー全体は、私が扱っている状況の例としてここにあります。これは簡単で汚いコードであり、警告する必要がありました。本当の問題は、「オブジェクトのメソッドの 1 つにアクセスするために、オブジェクトを 1 回だけ (または時々) 作成するのは良いことなのか?」ということでした。さて、あなたの回答を読んでもう一度考えてみると、「それはあなたの目標、クラス、責任などに依存します...」というのが正しい答えのよう
です。オブジェクトに情報を保存しますか? 静的メソッドにすることはできません。
永久メモリを使用するシングルトンは問題ですか? ほとんどの場合、グローバルな状態でオブジェクトをメモリ内に維持する正当な理由が必要だと思うからです。したがって、ほとんどの場合、シングルトンはありません。
最後に、いつかオブジェクトをインスタンス化するために使用するクラスを作成するのは問題ですか? そうではありません、がんばってください!:-)