mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-23 03:04:29 +08:00
新增 `IArchitectureOptions` 接口及其实现类 `FunctionalArchitectureOptions`, 用于控制架构行为,如阶段验证严格性和延迟注册许可。 同时为 `Architecture<T>` 类添加虚属性 `Options`,默认返回功能型选项实例。 修改了阶段转换验证、系统/模型注册时机检查逻辑,以支持通过选项动态控制其行为。 调整部分代码格式以提升可读性。
27 lines
1.2 KiB
C#
27 lines
1.2 KiB
C#
namespace GFramework.Core.architecture;
|
|
|
|
/// <summary>
|
|
/// 函数式架构选项实现,支持匿名实现
|
|
/// </summary>
|
|
public class FunctionalArchitectureOptions(Func<bool> strictPhaseValidation, Func<bool> allowLateRegistration)
|
|
: IArchitectureOptions
|
|
{
|
|
/// <summary>
|
|
/// 初始化 FunctionalArchitectureOptions 类的新实例
|
|
/// </summary>
|
|
/// <param name="strictPhaseValidation">用于确定是否启用严格阶段验证的函数</param>
|
|
/// <param name="allowLateRegistration">用于确定是否允许延迟注册的函数</param>
|
|
private readonly Func<bool> _strictPhaseValidation = strictPhaseValidation ?? throw new ArgumentNullException(nameof(strictPhaseValidation));
|
|
private readonly Func<bool> _allowLateRegistration = allowLateRegistration ?? throw new ArgumentNullException(nameof(allowLateRegistration));
|
|
|
|
/// <summary>
|
|
/// 获取一个值,该值指示是否启用严格阶段验证
|
|
/// </summary>
|
|
public bool StrictPhaseValidation => _strictPhaseValidation();
|
|
|
|
/// <summary>
|
|
/// 获取一个值,该值指示是否允许延迟注册
|
|
/// </summary>
|
|
public bool AllowLateRegistration => _allowLateRegistration();
|
|
}
|