美文网首页
设计模式-状态

设计模式-状态

作者: Sweet丶 | 来源:发表于2020-10-21 14:37 被阅读0次

这里介绍一下设计模式中的状态模式在iOS中的实现。

状态模式(State Pattern):允许对象内部状态发生改变时,执行的业务也随之改变。这样方便状态之间解耦合,每个状态下有自己独立的逻辑,便于维护;下面是一个状态模式的实现例子:

@objc protocol State {
    func doAction(context :ZLContext)
}

extension State{//这里给出协议方法的默认实现,使得方法称为可选实现
    func doAction(context :ZLContext) {
        print("协议方法默认的实现")
        
    }
}

@objc class ZLContext: NSObject {
    @objc var state: State? = nil
    
}

@objc class StartState: NSObject , State{

    func doAction(context :ZLContext) {
        print("Player is in start state")
        context.state = self
    }
    
    @objc(toString)
    func toString() -> String {
        return "start state"
    }
}

@objc class StopState: NSObject , State{

    func doAction(context :ZLContext) {
        print("Player is in stop state")
        context.state = self
    }
    @objc(toString)
    func toString() -> String {
        return "stop state"
    }
}


具体使用:

// 状态模式
ZLContext *context = [[ZLContext alloc] init];
        
StartState *start = [[StartState alloc] init];
[start doActionWithContext:context];
        
StartState *state = (StartState *)context.state;
NSLog(@"%@", [state toString]);
        
StopState *stop = [[StopState alloc] init];
[stop doActionWithContext:context];
        
state = (StopState *)context.state;
NSLog(@"%@", [state toString]);

相关文章

  • 设计模式-状态模式

    设计模式-状态模式 设计模式 状态模式的关键是区分事物内部的状态

  • 设计模式-状态设计模式

    1.定义 对于某个操作,由于其状态的不同,表现出的行为会不同(如遥控器进行音量增加的操作,在电视是开机状态下是可以...

  • 设计模式——状态模式

    设计模式——状态模式 在状态模式中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 优点: 减少...

  • 设计模式——状态模式

    前言 设计模式是指导一个程序猿以更好的姿态处理一些问题,而不再像刚学编程的我们,只会使用if-else分支语句,或...

  • 设计模式--状态模式

    基本常识:策略模式与状态模式是双胞胎,在出生时才分开。 假设公司有个糖果机,1当糖果机由糖果,投入25分钱,转动曲...

  • 设计模式——状态模式

    在阎宏博士的《JAVA与模式》一书中开头是这样描述状态(State)模式的:状态模式,又称状态对象模式(Patte...

  • 设计模式《状态模式》

    引言   上一节我们说了策略模式。这一节我们讲讲策略模式的双胞胎弟弟:状态模式,这个模式大家可能不常见,也不常用,...

  • 设计模式——状态模式

    定义 状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行...

  • 设计模式 - 状态模式

    模式定义 允许一个对象在其内部状态发生改变时改变它的行为。对象看起来似乎修改了它的类。 状态模式(State Pa...

  • 设计模式 ——— 状态模式

    STATE(状态) ———— 对象行为型模式 意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改...

网友评论

      本文标题:设计模式-状态

      本文链接:https://www.haomeiwen.com/subject/idtemktx.html