using Godot; namespace Core; /// /// MVC 基础接口 /// 设计说明: /// 1) View 只负责显示与输入,Controller 负责修改 Model。 /// 2) View 与 Model 通过 Bind 绑定,避免静态单例。 /// 注意事项: /// - View 内不要直接写业务结算逻辑。 /// 未来扩展: /// - 可加入“脏标记刷新”与“差量更新”以减少 UI 开销。 /// public interface IView { /// /// 绑定数据模型 /// /// 数据模型 void Bind(TModel model); } /// /// 控制器接口 /// public interface IController { /// /// 初始化控制器 /// /// 游戏会话 void Initialize(GameSession session); } /// /// 模型视图基类 /// /// 模型类型 public abstract partial class ModelView : Node, IView { /// /// 数据模型 /// public TModel Model { get; private set; } /// /// 绑定数据模型 /// /// 数据模型 public virtual void Bind(TModel model) { Model = model; OnModelBound(); } /// /// 当模型绑定时调用 /// protected virtual void OnModelBound() { } }