using GFramework.Core.Abstractions.Architectures; using GFramework.Core.Abstractions.Rule; using GFramework.Core.Architectures; namespace GFramework.Core.Rule; /// /// 上下文感知基类,实现了IContextAware接口,为需要感知架构上下文的类提供基础实现 /// public abstract class ContextAwareBase : IContextAware { /// /// 获取当前实例的架构上下文 /// protected IArchitectureContext? Context { get; set; } /// /// 设置架构上下文的实现方法,由框架调用 /// /// 要设置的架构上下文实例 void IContextAware.SetContext(IArchitectureContext context) { Context = context; OnContextReady(); } /// /// 获取架构上下文 /// /// 当前架构上下文对象 IArchitectureContext IContextAware.GetContext() { Context ??= GameContext.GetFirstArchitectureContext(); return Context; } /// /// 当上下文准备就绪时调用的虚方法,子类可以重写此方法来执行上下文相关的初始化逻辑 /// protected virtual void OnContextReady() { } }