using GFramework.Core.model;
using GFramework.Core.system;
using GFramework.Core.utility;
namespace GFramework.Core.extensions;
///
/// 提供获取模型对象扩展方法的静态类
///
public static class CanGetModelExtension
{
///
/// 从架构中获取指定类型的模型实例
///
/// 要获取的模型类型,必须实现IModel接口
/// 实现ICanGetModel接口的对象实例
/// 指定类型的模型实例
public static T GetModel(this ICanGetModel self) where T : class, IModel
{
return self.GetArchitecture().GetModel();
}
}
///
/// 提供获取系统对象扩展方法的静态类
///
public static class CanGetSystemExtension
{
///
/// 从架构中获取指定类型的系统实例
///
/// 要获取的系统类型,必须实现ISystem接口
/// 实现ICanGetSystem接口的对象实例
/// 指定类型的系统实例
public static T GetSystem(this ICanGetSystem self) where T : class, ISystem
{
return self.GetArchitecture().GetSystem();
}
}
///
/// 提供获取工具对象扩展方法的静态类
///
public static class CanGetUtilityExtension
{
///
/// 从架构中获取指定类型的工具实例
///
/// 要获取的工具类型,必须实现IUtility接口
/// 实现ICanGetUtility接口的对象实例
/// 指定类型的工具实例
public static T GetUtility(this ICanGetUtility self) where T : class, IUtility
{
return self.GetArchitecture().GetUtility();
}
}