# 生命周期管理
**本文引用的文件**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs)
- [IArchitectureLifecycle.cs](file://GFramework.Core.Abstractions/architecture/IArchitectureLifecycle.cs)
- [IArchitecturePhaseAware.cs](file://GFramework.Core.Abstractions/architecture/IArchitecturePhaseAware.cs)
- [ArchitecturePhase.cs](file://GFramework.Core.Abstractions/enums/ArchitecturePhase.cs)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs)
- [ArchitectureConfiguration.cs](file://GFramework.Core/architecture/ArchitectureConfiguration.cs)
- [ArchitectureContext.cs](file://GFramework.Core/architecture/ArchitectureContext.cs)
- [IArchitecture.cs](file://GFramework.Core.Abstractions/architecture/IArchitecture.cs)
- [IInitializable.cs](file://GFramework.Core.Abstractions/lifecycle/IInitializable.cs)
- [ILifecycle.cs](file://GFramework.Core.Abstractions/lifecycle/ILifecycle.cs)
- [ArchitectureConstantsTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs)
- [ArchitectureConfigurationTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs)
- [TestArchitectureBase.cs](file://GFramework.Core.Tests/architecture/TestArchitectureBase.cs)
- [README.md](file://GFramework.Core/architecture/README.md)
## 目录
1. [简介](#简介)
2. [项目结构](#项目结构)
3. [核心组件](#核心组件)
4. [架构总览](#架构总览)
5. [详细组件分析](#详细组件分析)
6. [依赖分析](#依赖分析)
7. [性能考虑](#性能考虑)
8. [故障排查指南](#故障排查指南)
9. [结论](#结论)
10. [附录](#附录)
## 简介
本文件聚焦于GFramework的架构生命周期管理,围绕EnterPhase方法的实现机制展开,深入解析阶段转换验证、阶段变更通知、阶段感知对象处理,以及生命周期钩子注册与IArchitectureLifecycle接口的实现要求。同时,详细说明ValidatePhaseTransition的阶段转换规则与StrictPhaseValidation配置的作用,解释NotifyPhase与NotifyPhaseAwareObjects的通知流程,并介绍架构阶段枚举ArchitecturePhase与阶段常量定义。最后提供生命周期管理的完整流程图与实际使用示例,包含错误处理与调试技巧。
## 项目结构
生命周期管理主要位于核心库的architecture目录下,配合抽象层接口与测试用例共同构成完整的生命周期体系:
- 核心实现:Architecture.cs(生命周期入口、阶段转换、通知、注册)
- 接口定义:IArchitectureLifecycle.cs、IArchitecturePhaseAware.cs、IArchitecture.cs
- 枚举与常量:ArchitecturePhase.cs、ArchitectureConstants.cs
- 配置与上下文:ArchitectureConfiguration.cs、ArchitectureContext.cs
- 生命周期接口:IInitializable.cs、ILifecycle.cs
- 测试与示例:ArchitectureConstantsTests.cs、ArchitectureConfigurationTests.cs、TestArchitectureBase.cs、README.md
```mermaid
graph TB
subgraph "核心实现"
A["Architecture.cs"]
C["ArchitectureConstants.cs"]
K["ArchitectureConfiguration.cs"]
X["ArchitectureContext.cs"]
end
subgraph "抽象接口"
L["IArchitectureLifecycle.cs"]
P["IArchitecturePhaseAware.cs"]
I["IArchitecture.cs"]
E["ArchitecturePhase.cs"]
Z["IInitializable.cs"]
Y["ILifecycle.cs"]
end
subgraph "测试与示例"
T1["ArchitectureConstantsTests.cs"]
T2["ArchitectureConfigurationTests.cs"]
T3["TestArchitectureBase.cs"]
R["README.md"]
end
A --> C
A --> K
A --> X
A --> L
A --> P
A --> E
A --> Z
A --> Y
I --> A
T1 --> C
T2 --> K
T3 --> A
R --> A
```
**图表来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L1-L569)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L1-L54)
- [ArchitectureConfiguration.cs](file://GFramework.Core/architecture/ArchitectureConfiguration.cs#L1-L35)
- [ArchitectureContext.cs](file://GFramework.Core/architecture/ArchitectureContext.cs#L1-L225)
- [IArchitectureLifecycle.cs](file://GFramework.Core.Abstractions/architecture/IArchitectureLifecycle.cs#L1-L16)
- [IArchitecturePhaseAware.cs](file://GFramework.Core.Abstractions/architecture/IArchitecturePhaseAware.cs#L1-L15)
- [IArchitecture.cs](file://GFramework.Core.Abstractions/architecture/IArchitecture.cs#L1-L68)
- [ArchitecturePhase.cs](file://GFramework.Core.Abstractions/enums/ArchitecturePhase.cs#L1-L66)
- [IInitializable.cs](file://GFramework.Core.Abstractions/lifecycle/IInitializable.cs#L1-L12)
- [ILifecycle.cs](file://GFramework.Core.Abstractions/lifecycle/ILifecycle.cs#L1-L6)
- [ArchitectureConstantsTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs#L1-L195)
- [ArchitectureConfigurationTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs#L1-L192)
- [TestArchitectureBase.cs](file://GFramework.Core.Tests/architecture/TestArchitectureBase.cs#L1-L58)
- [README.md](file://GFramework.Core/architecture/README.md#L296-L357)
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L1-L569)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L1-L54)
- [ArchitectureConfiguration.cs](file://GFramework.Core/architecture/ArchitectureConfiguration.cs#L1-L35)
- [ArchitectureContext.cs](file://GFramework.Core/architecture/ArchitectureContext.cs#L1-L225)
- [IArchitectureLifecycle.cs](file://GFramework.Core.Abstractions/architecture/IArchitectureLifecycle.cs#L1-L16)
- [IArchitecturePhaseAware.cs](file://GFramework.Core.Abstractions/architecture/IArchitecturePhaseAware.cs#L1-L15)
- [IArchitecture.cs](file://GFramework.Core.Abstractions/architecture/IArchitecture.cs#L1-L68)
- [ArchitecturePhase.cs](file://GFramework.Core.Abstractions/enums/ArchitecturePhase.cs#L1-L66)
- [IInitializable.cs](file://GFramework.Core.Abstractions/lifecycle/IInitializable.cs#L1-L12)
- [ILifecycle.cs](file://GFramework.Core.Abstractions/lifecycle/ILifecycle.cs#L1-L6)
- [ArchitectureConstantsTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs#L1-L195)
- [ArchitectureConfigurationTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs#L1-L192)
- [TestArchitectureBase.cs](file://GFramework.Core.Tests/architecture/TestArchitectureBase.cs#L1-L58)
- [README.md](file://GFramework.Core/architecture/README.md#L296-L357)
## 核心组件
- EnterPhase:进入指定架构阶段的核心方法,负责阶段转换验证、阶段变更记录与通知。
- ValidatePhaseTransition:阶段转换规则校验,受StrictPhaseValidation影响。
- NotifyPhase:通知所有生命周期钩子当前阶段。
- NotifyPhaseAwareObjects:通知所有IArchitecturePhaseAware对象阶段变更。
- RegisterLifecycleHook:注册生命周期钩子,受AllowLateRegistration限制。
- ArchitecturePhase:阶段枚举,定义线性生命周期序列。
- ArchitectureConstants:阶段常量与转换规则定义。
- ArchitectureConfiguration:默认配置,含StrictPhaseValidation与AllowLateRegistration。
- ArchitectureContext:上下文服务访问与事件总线集成点。
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L142-L223)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L38-L54)
- [ArchitectureConfiguration.cs](file://GFramework.Core/architecture/ArchitectureConfiguration.cs#L30-L34)
- [ArchitectureContext.cs](file://GFramework.Core/architecture/ArchitectureContext.cs#L1-L225)
## 架构总览
生命周期管理采用“线性状态机”模式,阶段按固定顺序推进。EnterPhase作为入口,先进行转换验证,再更新CurrentPhase,随后通知生命周期钩子与阶段感知对象。初始化流程贯穿工具、模型、系统三类组件,最终进入Ready并冻结容器。
```mermaid
sequenceDiagram
participant Client as "调用方"
participant Arch as "Architecture"
participant Cfg as "Configuration"
participant Const as "ArchitectureConstants"
participant Hooks as "生命周期钩子"
participant Aware as "阶段感知对象"
Client->>Arch : "EnterPhase(next)"
Arch->>Arch : "ValidatePhaseTransition(next)"
alt "严格验证开启"
Arch->>Cfg : "读取StrictPhaseValidation"
Arch->>Const : "查询允许转换"
Const-->>Arch : "允许列表"
Arch->>Arch : "若不合法则抛出异常"
end
Arch->>Arch : "更新CurrentPhase"
Arch->>Hooks : "NotifyPhase(next)"
Hooks-->>Arch : "OnPhase回调"
Arch->>Aware : "NotifyPhaseAwareObjects(next)"
Aware-->>Arch : "OnArchitecturePhase回调"
Arch-->>Client : "完成阶段切换"
```
**图表来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L142-L183)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L38-L54)
- [ArchitectureConfiguration.cs](file://GFramework.Core/architecture/ArchitectureConfiguration.cs#L30-L34)
## 详细组件分析
### EnterPhase 方法实现机制
- 阶段转换验证:调用ValidatePhaseTransition,依据StrictPhaseValidation与ArchitectureConstants.PhaseTransitions判断合法性。
- 阶段变更记录:保存previousPhase,更新CurrentPhase,仅在阶段变化时记录日志。
- 阶段变更通知:先NotifyPhase通知生命周期钩子,再NotifyPhaseAwareObjects通知阶段感知对象。
```mermaid
flowchart TD
Start(["进入 EnterPhase"]) --> Validate["调用 ValidatePhaseTransition(next)"]
Validate --> Strict{"StrictPhaseValidation 开启?"}
Strict --> |否| Update["更新 CurrentPhase"]
Strict --> |是| CheckAllowed["查询 ArchitectureConstants.PhaseTransitions"]
CheckAllowed --> Allowed{"允许转换?"}
Allowed --> |否| Throw["抛出 InvalidOperationException"]
Allowed --> |是| Update
Update --> Notify1["NotifyPhase(next)"]
Notify1 --> Notify2["NotifyPhaseAwareObjects(next)"]
Notify2 --> End(["结束"])
Throw --> End
```
**图表来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L142-L157)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L164-L183)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L38-L54)
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L142-L157)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L164-L183)
### ValidatePhaseTransition 阶段转换规则与StrictPhaseValidation
- StrictPhaseValidation关闭:跳过验证,允许任意转换。
- StrictPhaseValidation开启:仅允许线性顺序转换,且FailedInitialization可从任意阶段转入。
- 转换规则来源于ArchitectureConstants.PhaseTransitions,保证阶段顺序一致性与失败路径存在性。
```mermaid
flowchart TD
S(["开始验证"]) --> CheckCfg["读取 StrictPhaseValidation"]
CheckCfg --> Enabled{"开启?"}
Enabled --> |否| OK["验证通过"]
Enabled --> |是| NextIsFail{"next 是否为 FailedInitialization?"}
NextIsFail --> |是| OK
NextIsFail --> |否| Lookup["查找 CurrentPhase 的允许列表"]
Lookup --> Found{"找到且包含 next?"}
Found --> |是| OK
Found --> |否| Err["抛出异常并记录致命日志"]
OK --> E(["结束"])
Err --> E
```
**图表来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L164-L183)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L38-L54)
- [ArchitectureConfiguration.cs](file://GFramework.Core/architecture/ArchitectureConfiguration.cs#L30-L34)
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L164-L183)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L38-L54)
- [ArchitectureConfiguration.cs](file://GFramework.Core/architecture/ArchitectureConfiguration.cs#L30-L34)
### NotifyPhase 与 NotifyPhaseAwareObjects 通知机制
- NotifyPhase:遍历生命周期钩子列表,逐个调用OnPhase(phase, architecture),并记录跟踪日志。
- NotifyPhaseAwareObjects:通过容器检索IArchitecturePhaseAware实例,逐个调用OnArchitecturePhase(phase),并记录跟踪日志。
```mermaid
sequenceDiagram
participant Arch as "Architecture"
participant Hooks as "生命周期钩子集合"
participant Aware as "阶段感知对象集合"
Arch->>Hooks : "遍历 OnPhase(phase, architecture)"
Hooks-->>Arch : "回调完成"
Arch->>Aware : "遍历 OnArchitecturePhase(phase)"
Aware-->>Arch : "回调完成"
```
**图表来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L198-L209)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L189-L196)
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L189-L209)
### 生命周期钩子注册机制与 IArchitectureLifecycle 实现要求
- RegisterLifecycleHook:在CurrentPhase达到Ready之后,若未开启AllowLateRegistration,则拒绝注册;否则加入_hooks列表。
- IArchitectureLifecycle:必须实现OnPhase(ArchitecturePhase, IArchitecture),用于接收阶段变更通知。
- IArchitecture:对外暴露RegisterLifecycleHook方法,便于外部注册。
```mermaid
classDiagram
class IArchitecture {
+RegisterLifecycleHook(hook) IArchitectureLifecycle
}
class Architecture {
-_lifecycleHooks : IArchitectureLifecycle[]
+RegisterLifecycleHook(hook) IArchitectureLifecycle
+EnterPhase(next) void
}
class IArchitectureLifecycle {
+OnPhase(phase, architecture) void
}
IArchitecture <|.. Architecture
Architecture --> IArchitectureLifecycle : "注册/通知"
```
**图表来源**
- [IArchitecture.cs](file://GFramework.Core.Abstractions/architecture/IArchitecture.cs#L62-L67)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L216-L223)
- [IArchitectureLifecycle.cs](file://GFramework.Core.Abstractions/architecture/IArchitectureLifecycle.cs#L8-L16)
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L216-L223)
- [IArchitecture.cs](file://GFramework.Core.Abstractions/architecture/IArchitecture.cs#L62-L67)
- [IArchitectureLifecycle.cs](file://GFramework.Core.Abstractions/architecture/IArchitectureLifecycle.cs#L8-L16)
### 阶段感知对象处理(IArchitecturePhaseAware)
- 通过容器检索IArchitecturePhaseAware实例,逐一调用OnArchitecturePhase(phase)。
- 适用于需要在特定阶段执行逻辑的对象,如资源加载、UI状态同步等。
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L189-L196)
- [IArchitecturePhaseAware.cs](file://GFramework.Core.Abstractions/architecture/IArchitecturePhaseAware.cs#L8-L15)
### 架构阶段枚举与阶段常量定义
- ArchitecturePhase:定义None、BeforeUtilityInit、AfterUtilityInit、BeforeModelInit、AfterModelInit、BeforeSystemInit、AfterSystemInit、Ready、Destroying、Destroyed、FailedInitialization等阶段。
- ArchitectureConstants:定义PhaseOrder线性顺序与PhaseTransitions转换映射,确保严格线性推进与失败路径存在。
```mermaid
classDiagram
class ArchitecturePhase {
<>
+None
+BeforeUtilityInit
+AfterUtilityInit
+BeforeModelInit
+AfterModelInit
+BeforeSystemInit
+AfterSystemInit
+Ready
+Destroying
+Destroyed
+FailedInitialization
}
class ArchitectureConstants {
+PhaseOrder : ArchitecturePhase[]
+PhaseTransitions : ImmutableDictionary
}
ArchitectureConstants --> ArchitecturePhase : "使用"
```
**图表来源**
- [ArchitecturePhase.cs](file://GFramework.Core.Abstractions/enums/ArchitecturePhase.cs#L10-L66)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L17-L54)
**章节来源**
- [ArchitecturePhase.cs](file://GFramework.Core.Abstractions/enums/ArchitecturePhase.cs#L10-L66)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L17-L54)
### 生命周期管理完整流程图(初始化与销毁)
```mermaid
flowchart TD
InitStart(["Initialize/InitializeAsync 入口"]) --> Setup["基础环境与上下文初始化"]
Setup --> UserInit["调用子类 Init()"]
UserInit --> Group["按类型分组组件
Utilities/Models/Systems"]
Group --> U1["进入 BeforeUtilityInit"]
U1 --> U2["初始化 Utilities 并进入 AfterUtilityInit"]
U2 --> M1["进入 BeforeModelInit"]
M1 --> M2["初始化 Models 并进入 AfterModelInit"]
M2 --> S1["进入 BeforeSystemInit"]
S1 --> S2["初始化 Systems 并进入 AfterSystemInit"]
S2 --> Freeze["冻结 IOC 容器"]
Freeze --> Ready["进入 Ready 并发送 Ready 事件"]
Ready --> Destroy["Destroy 触发 Destroying 阶段"]
Destroy --> Dispose["逆序销毁 IDisposable 组件"]
Dispose --> Destroyed["进入 Destroyed 并发送 Destroyed 事件"]
```
**图表来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L531-L566)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L357-L396)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L17-L29)
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L531-L566)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L357-L396)
- [ArchitectureConstants.cs](file://GFramework.Core/architecture/ArchitectureConstants.cs#L17-L29)
### 实际使用示例与最佳实践
- 生命周期钩子示例:参考README中的PerformanceMonitorHook示例,展示在各阶段打印日志。
- 钩子注册时机:必须在Ready阶段之前注册,否则会抛出异常。
- 阶段检查:通过CurrentPhase判断架构状态,避免在错误阶段执行操作。
**章节来源**
- [README.md](file://GFramework.Core/architecture/README.md#L296-L357)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L216-L223)
## 依赖分析
- Architecture依赖Configuration与ArchitectureConstants进行阶段验证与顺序约束。
- 通过容器检索IArchitecturePhaseAware与IArchitectureLifecycle,实现松耦合通知。
- ArchitectureContext提供服务缓存与事件总线集成,支持查询、命令、事件的统一访问。
```mermaid
graph LR
Arch["Architecture"] --> Cfg["ArchitectureConfiguration"]
Arch --> Const["ArchitectureConstants"]
Arch --> Ctx["ArchitectureContext"]
Arch --> Hook["IArchitectureLifecycle"]
Arch --> Aware["IArchitecturePhaseAware"]
Ctx --> Bus["IEventBus"]
```
**图表来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L57-L78)
- [ArchitectureContext.cs](file://GFramework.Core/architecture/ArchitectureContext.cs#L16-L24)
- [IArchitecture.cs](file://GFramework.Core.Abstractions/architecture/IArchitecture.cs#L11-L16)
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L57-L78)
- [ArchitectureContext.cs](file://GFramework.Core/architecture/ArchitectureContext.cs#L16-L24)
- [IArchitecture.cs](file://GFramework.Core.Abstractions/architecture/IArchitecture.cs#L11-L16)
## 性能考虑
- 去重集合:使用HashSet维护待初始化与可销毁组件,确保O(1)去重与O(1)插入/删除。
- 顺序与逆序:组件注册顺序保持初始化顺序,销毁时逆序执行,减少依赖破坏风险。
- 日志粒度:Info/Debug/Trace按重要性分级,避免过度日志影响性能。
- 异步初始化:支持IAsyncInitializable与IAsyncCommand,提升长耗时初始化效率。
[本节为通用指导,无需具体文件分析]
## 故障排查指南
- 阶段转换异常:检查StrictPhaseValidation与PhaseTransitions,确认转换是否符合线性顺序。
- Ready后注册钩子:若CurrentPhase已达Ready且未开启AllowLateRegistration,将抛出异常。
- 初始化失败:捕获Initialize/InitializeAsync异常后进入FailedInitialization并发送失败事件。
- 销毁异常:Destroy过程中单个组件异常会被捕获并记录,不影响其他组件销毁。
**章节来源**
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L164-L183)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L216-L223)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L492-L524)
- [Architecture.cs](file://GFramework.Core/architecture/Architecture.cs#L357-L396)
## 结论
GFramework的生命周期管理以EnterPhase为核心,结合StrictPhaseValidation与ArchitectureConstants确保严格的线性状态机行为;通过NotifyPhase与NotifyPhaseAwareObjects实现钩子与感知对象的统一通知;借助ArchitectureConfiguration提供灵活的配置开关。整体设计清晰、可扩展,适合复杂游戏架构的生命周期编排。
[本节为总结,无需具体文件分析]
## 附录
### 阶段常量与转换规则验证(来自测试)
- PhaseOrder包含全部阶段且顺序正确。
- PhaseTransitions包含线性转换与失败路径,且每阶段最多一个转换。
- PhaseOrder与PhaseTransitions一致,保证转换方向正确。
**章节来源**
- [ArchitectureConstantsTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs#L24-L91)
- [ArchitectureConstantsTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConstantsTests.cs#L113-L195)
### 配置默认值与可定制性(来自测试)
- ArchitectureConfiguration默认StrictPhaseValidation为true,AllowLateRegistration为false。
- 支持独立修改LoggerProperties与ArchitectureProperties,不影响其他实例。
**章节来源**
- [ArchitectureConfigurationTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs#L66-L83)
- [ArchitectureConfigurationTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs#L107-L126)
- [ArchitectureConfigurationTests.cs](file://GFramework.Core.Tests/architecture/ArchitectureConfigurationTests.cs#L160-L191)
### 测试架构基类(扩展EnterPhase以记录阶段历史)
- 通过重写EnterPhase记录PhaseHistory,便于断言阶段推进顺序。
**章节来源**
- [TestArchitectureBase.cs](file://GFramework.Core.Tests/architecture/TestArchitectureBase.cs#L50-L57)