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() { }
}