namespace GFramework.Core.architecture;
///
/// 函数式架构选项实现,支持匿名实现
///
public class FunctionalArchitectureOptions(Func strictPhaseValidation, Func allowLateRegistration)
: IArchitectureOptions
{
///
/// 初始化 FunctionalArchitectureOptions 类的新实例
///
/// 用于确定是否启用严格阶段验证的函数
/// 用于确定是否允许延迟注册的函数
private readonly Func _strictPhaseValidation = strictPhaseValidation ?? throw new ArgumentNullException(nameof(strictPhaseValidation));
private readonly Func _allowLateRegistration = allowLateRegistration ?? throw new ArgumentNullException(nameof(allowLateRegistration));
///
/// 获取一个值,该值指示是否启用严格阶段验证
///
public bool StrictPhaseValidation => _strictPhaseValidation();
///
/// 获取一个值,该值指示是否允许延迟注册
///
public bool AllowLateRegistration => _allowLateRegistration();
}