using GFramework.Core.architecture; using GFramework.Core.rule; namespace GFramework.Core.command; /// /// 抽象命令类,实现 ICommand 接口,为具体命令提供基础架构支持 /// public abstract class AbstractCommand : ICommand { private IArchitecture _mArchitecture; /// /// 获取命令所属的架构实例 /// /// IArchitecture 架构接口实例 IArchitecture IBelongToArchitecture.GetArchitecture() => _mArchitecture; /// /// 设置命令所属的架构实例 /// /// 要设置的架构实例 void ICanSetArchitecture.SetArchitecture(IArchitecture architecture) => _mArchitecture = architecture; /// /// 执行命令,调用抽象方法 OnExecute 来实现具体逻辑 /// void ICommand.Execute() => OnExecute(); /// /// 抽象方法,由子类实现具体的命令执行逻辑 /// protected abstract void OnExecute(); } /// /// 带返回值的抽象命令类,实现 ICommand{TResult} 接口,为需要返回结果的命令提供基础架构支持 /// /// 命令执行后返回的结果类型 public abstract class AbstractCommand : ICommand { private IArchitecture _mArchitecture; /// /// 获取命令所属的架构实例 /// /// IArchitecture 架构接口实例 IArchitecture IBelongToArchitecture.GetArchitecture() => _mArchitecture; /// /// 设置命令所属的架构实例 /// /// 要设置的架构实例 void ICanSetArchitecture.SetArchitecture(IArchitecture architecture) => _mArchitecture = architecture; /// /// 执行命令,调用抽象方法 OnExecute 来实现具体逻辑并返回结果 /// /// TResult 类型的执行结果 TResult ICommand.Execute() => OnExecute(); /// /// 抽象方法,由子类实现具体的命令执行逻辑 /// /// TResult 类型的执行结果 protected abstract TResult OnExecute(); }