問題タブ [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.
java - 設計上の決定 - Math.java の別の RandomNumberGeneratorHolder クラスの使用/利点は何ですか?
そのため、ソース コードを調べていたところ、静的変数Math.java
を保持するために作成されたホルダー クラスがあることがわかりました。randomNumberGenerator
関連するコードは次のとおりです。
IMO、クラス自体の中で単にrandomNumberGenerator
asを宣言することもできました。private static final
Math
私の質問は、これのために別のホルダークラスを作成する利点はありますか? または、それは単なる個人的な好みです。
c++ - データ構造にフィールドとして格納されたクラスを含めないようにするにはどうすればよいですか?
Squad
s の動的配列を持つクラスがあるとしUnit
ます。#include
「Unit.h」を「Squad.h」と後者のユーザーに使用しないようにする方法を探しています。#include
グローバルな考え方は、他のものにつながる sを避けることです - かなり厄介なことです。
次のような簡単な解決策を見つけました。
(前方宣言されUnit
た s をstd::vector
内部に配置すると、のユーザーSquad
が必要になるため失敗します。そうしないと、割り当てられません。)Squad
#include
Unit
vector
質問その 1 : そのような慣行は容認されますか? std::vector
もちろん、 (およびその他の) の内臓を毎回書き直すつもりはありませんが、.cpptemplate<typename T> T* reallocate(T*, size_t current, size_t needed)
で後の s のようなアルゴリズムを使用してヘッダーを作成することは耐えられるようです。#include
質問 2 : より良い解決策はありますか? pimpl の慣用句については知っていますが、頻繁に小さなヒープを割り当てるのは嫌いです。
ところで、std::unordered_map のようなより複雑なデータ構造が必要な場合、これをどうすればよいでしょうか? アレイの交換は難しくありませんが、このような「より悪い」ケースがあります。