VRChat 非公式日本語ドキュメント

アーキテクチャ

ClientSimのアーキテクチャは、イベントベースのオブザーバーパターンを採用した小さなコンポーネントを中心に設計されており、各クラスが必要な依存関係のみで初期化される手動の依存性の注入を組み合わせています。付属のプレイヤーコントローラーは汎用的な依存性プロバイダーに基づいて構築されているため、コアシステムを書き換えることなく、将来的にVRへ対応させることも可能です。

オブザーバーパターン

ClientSimはオブザーバーパターンを使用してシステム内でイベントを送信します。これにより、受信側がどのような処理を行うかを知ることなく、どのコンポーネントでもイベントをリスンできるようになります。イベントは各システムの疎結合化を助け、あるシステムが何らかの通知を送るために別のシステムに直接依存する必要がなくなるため、テストのしやすさが向上します。詳細は「EventDispatcher」を参照してください。

依存性の注入

ClientSimのアーキテクチャでは、手動による依存性の注入(DI)を採用しています。システムを作成する際、すべての依存関係はコンストラクターまたは初期化メソッドを通じて渡されます。依存関係はプロバイダーとして構成されており、提供するメソッドを宣言したインターフェースを継承する必要があります。クラスが特定の要素を必要とする場合、その実装クラスではなくプロバイダーインターフェースに依存します。これにより、依存する側のコードを変更することなく、異なるプロバイダー実装を利用できるようになります。このプロバイダーパターンにより、テスト時に依存関係を簡単にモック化することが可能になります。

最終更新: