私はサウンド ライブラリ (OpenAL を使用) に取り組んでおり、FMOD によって提供されるインターフェイスからインスピレーションを得て、このリンクでインターフェイスを確認できます。
FMOD インターフェイスからわかるように、Sound、Channel、ChannelGroup などのいくつかの概念を提供しました。これらのクラスにはすべてプライベート コンストラクターがあり、たとえば、Sound を作成する場合は、提供されている関数createSound()を使用する必要があります。 System クラスによって (Channel または ChannelGroup を作成する場合と同じ)。
同様のメカニズムを提供したいのですが、背後でどのように機能するのかわかりません。たとえば、関数createSound()はどのようにしてサウンドの新しいインスタンスを作成できますか? コンストラクターはプライベートであり、Sound インターフェースからは、静的メソッドやフレンドシップはありません。いくつかのパターンが使用されていますか?
編集:OPの質問を明確にするために、プライベートコンストラクターを使用してクラスのインスタンスを作成する方法を尋ねていません。質問は投稿されたリンクにあります。プライベートコンストラクターを持ち、静的メソッドまたはフレンドを持たないクラスのインスタンスはどのように作成されますか?機能。
ありがとう。