私はいくつかのことを必要とする「プロセッサ」クラスを持っています: 1) データベースへのアクセスを許可するクラスのインスタンスへのアクセス。2) 文字列ユーティリティ クラスへのアクセス。3) 実行時に構成ファイルから読み取られるタイムアウト整数値。
したがって、メンバー属性として最初の 2 つへのポインターと、3 番目の単純な int 属性が必要です。通常、このような場合、コンストラクターに最初の 2 つのポインターと 3 つ目の int を取得させ、本体で、渡されたアイテムにメンバーを割り当てます。
問題は、このプロセッサ クラスの 100 個のインスタンスのようなプールを用意することです。各インスタンスに独自の (2) ポインターと整数属性を含めるのはメモリの無駄ではないかと考えています。ポインターは同じ 2 つのオブジェクトを指し、すべての整数はプロセスの存続期間を通じて同じ値を保持します。
私は「グローバルな状態は悪い」という概念に精通しており、静的メンバー属性の使用を思いとどまらせる印象を受けています。しかし、この場合、単純にこれら 3 つの属性を静的にする方が効率的ではないでしょうか。次に、2 つのポインターと整数を受け取り、渡された項目に静的メンバー属性を割り当てる静的な "initStaticMembers" メソッドを作成します。initStaticMembers は、プロセッサ インスタンスのプールが作成される前に 1 回呼び出されます。
私はその最後の部分 (静的な initStaticMembers メソッド) の大ファンではありません... あまり洗練されていないように見えますが、明らかに優れた代替手段が見つかりません。誰にも提案がありますか?そして、静的属性を使用すると、各プロセッサ クラス インスタンスに独自の属性インスタンス セットを与えるよりもメモリが節約されると考えるのは正しいでしょうか?
また、指しているクラスはスレッドセーフであるため、すべてのプロセッサがそれぞれへの単一のポインタを共有していることを気にする必要はないと思います。
フィードバックをお寄せいただきありがとうございます。