問題タブ [design-decisions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
203 参照

java - 設計上の決定 - Math.java の別の RandomNumberGeneratorHolder クラスの使用/利点は何ですか?

そのため、ソース コードを調べていたところ、静的変数Math.javaを保持するために作成されたホルダー クラスがあることがわかりました。randomNumberGenerator関連するコードは次のとおりです。

IMO、クラス自体の中で単にrandomNumberGeneratorasを宣言することもできました。private static finalMath

私の質問は、これのために別のホルダークラスを作成する利点はありますか? または、それは単なる個人的な好みです。

0 投票する
1 に答える
68 参照

c++ - データ構造にフィールドとして格納されたクラスを含めないようにするにはどうすればよいですか?

Squads の動的配列を持つクラスがあるとしUnitます。#include「Unit.h」を「Squad.h」と後者のユーザーに使用しないようにする方法を探しています。#includeグローバルな考え方は、他のものにつながる sを避けることです - かなり厄介なことです。

次のような簡単な解決策を見つけました。

(前方宣言されUnitた s をstd::vector内部に配置すると、のユーザーSquadが必要になるため失敗します。そうしないと、割り当てられません。)Squad#include Unitvector

質問その 1 : そのような慣行は容認されますか? std::vectorもちろん、 (およびその他の) の内臓を毎回書き直すつもりはありませんが、.cpptemplate<typename T> T* reallocate(T*, size_t current, size_t needed)で後の s のようなアルゴリズムを使用してヘッダーを作成することは耐えられるようです。#include

質問 2 : より良い解決策はありますか? pimpl の慣用句については知っていますが、頻繁に小さなヒープを割り当てるのは嫌いです。

ところで、std::unordered_map のようなより複雑なデータ構造が必要な場合、これをどうすればよいでしょうか? アレイの交換は難しくありませんが、このような「より悪い」ケースがあります。