using GFramework.framework.architecture;
using GFramework.framework.rule;
namespace GFramework.framework.system;
///
/// 抽象系统基类,实现系统接口的基本功能
/// 提供架构关联和初始化机制
///
public abstract class AbstractSystem : ISystem
{
private IArchitecture _mArchitecture;
///
/// 获取当前系统所属的架构实例
///
/// 返回系统关联的架构对象
IArchitecture IBelongToArchitecture.GetArchitecture() => _mArchitecture;
///
/// 设置系统所属的架构实例
///
/// 要关联的架构对象
void ICanSetArchitecture.SetArchitecture(IArchitecture architecture) => _mArchitecture = architecture;
///
/// 系统初始化方法,调用抽象初始化方法
///
void ISystem.Init() => OnInit();
///
/// 抽象初始化方法,由子类实现具体的初始化逻辑
///
protected abstract void OnInit();
}