本文共 1327 字,大约阅读时间需要 4 分钟。
// State.h #import @protocol State - (void) handle; - (id) getNextState; - (id) getState; @end
// State.h #import @interface State : NSObject - (void) handle; - (id) getNextState; - (id) getState; @end
// State+ConcreteState.h #import "State.h" @interface StateConcrete : State - (void) handle; - (id) getNextState; - (id) getState; @end
// State+ConcreteState.m #import "State+ConcreteState.h" @implementation StateConcrete - (void) handle { // 具体状态的行为逻辑 } - (id) getNextState { // 返回下一个状态 } - (id) getState { // 返回当前状态 } @end // StateManager.h #import #import "State+ConcreteState.h" @interface StateManager : NSObject - (void) switchState; - (id) getCurrentState; @end
完整实现示例
以下是一个完整的Objective-C实现示例,包括头文件和实现文件: // State.h #import @protocol State - (void) handle; - (id) getNextState; - (id) getState; @end
- (void) handle; - (id) getNextState; - (id) getState; @end
通过以上实现,可以轻松创建多个状态类,并通过StateManager进行状态切换。状态模式的核心优势在于代码的可维护性和扩展性,能够轻松支持更多状态的切换和管理。 转载地址:http://pzsfk.baihongyu.com/