ソフトウェアの設計に問題があります。私は非常に大きなオブジェクト(BO)を持っています。動的配列のマップを考えてみましょう。さまざまなクラスにまたがってアクセスする必要があります。クラスがBOを使用するたびに、クラスは新しいデータを追加したり、BO内のデータの一部を使用して計算を行います。システム全体のリソースを作成するC++
初心者の方で、私はこのようなオブジェクトをC++で設計する方法について迷っています。そのため、私のコード設計とアーキテクチャは良好です。グローバル変数を作ることは十分に効率的ではなく、Singletonで研究されていますが、ルールを見つけただけではオブジェクトにアクセスでき、それを変更することはできません。
誰でも正しい方向に向けることができますか?最も効率的でスケーラブルなデザインパターンは何ですか?ここでの回答に基づいて
おかげ
は、それはpsudoだ、次の正しい設計 - です!
Class BigObject {
private static BigObject instance = null;
private map;
private BigObject() { }
public static BigObject getInstance() {
if (instance == null) {
instance = new BigObject();
}
return instance;
}
public getArray(string key) {
return map[key];
}
public setBigObject(string key, Array value) {
map.insert(key, value);
}
は、アプリケーションのルートの中で最も可能性の高いメインのオブジェクトを作成し、それを渡しますその変更の責任を負うクラス/関数に渡す。しかし、あなたが巨大な物体を持っていると言うと、それはまた、巨大な赤い旗であり、この巨大な物体が正確に何であるかによって、将来あなたを傷つける可能性があります。 –
シングルトンで管理されているデータは、必要に応じてアクセスしたり変更することができます。大きなオブジェクトにアクセスして変更するには、複数のスレッドが必要ですか?大きなオブジェクトに他のアプリケーションからアクセスする必要がありますか? –
グローバル変数が効率的でないのはなぜですか? – user4581301