架构
ClientSim 的架构侧重于基于事件观察者模式的小型组件,结合手动依赖注入,每个类仅使用其所需的依赖进行初始化。包含的玩家控制器基于通用依赖提供者,这允许将来扩展到使用 VR,而无需重写核心系统。
观察者模式
ClientSim 使用观察者模式在系统内发送事件,任何组件都可以监听这些事件而无需知道谁在处理它们。事件有助于解耦不同的系统, 提高可测试性,因为一个系统不需要直接依赖另一个系统来在事件发生时发送消息。有关详细信息,请参阅 EventDispatcher。
依赖注入
ClientSim 的架构使用手动处理的依赖注入。在创建系统时,所有依赖都通过构造函数或初始化方法传递给系统。依赖结构化为提供者,并且必须扩展声明其提供方法的接口。当一个类需要特定项时,它依赖于提供者接口而不是实现它的类。这允许在不更改依赖代码的情况下提供不同的提供者实现。提供者模式使得测试中可以轻松模拟依赖。