状态模式从无知到无畏

状态模式从无知到无畏

凡是当你觉得你了解她的时候就会感觉她很简单,甚至到没什么可说的程度,状态模式还是从字面理解,强调的状态,那么什么是状态呢,比如你今天状态很好,昨天状态不好,明天可能状态会很好,那这个是一个动态的不断变化的过程,所以状态模式强调的就是变化。
那么比如说你要打篮球,今天状态很好,所以你篮板,投篮命中率都很好,可是昨天由于状态不好,那么这些表现就很差,状态模式就是在你做同一件或者同一类事情的时候,由于自身状态的变化所对应的不同的结果。
其实这里就跟狭隘的策略模式有一点相同,你状态好的时候对应一个策略,状态不好的时候是另一个策略,不同点就是,策略模式是相对固定的,不变的,而状态是变化的,就是同一个对象,可能一会状态好,一会状态不好。所以什么时候应该会使用到状态模式应该可以去延伸思考一下了。
这里举一个例子,我就不写代码了,代码网上有很多,这里就扯淡,你看看能对你有帮助不。比如你身价现在1000w,你去银行干任何事情的时候都是vip的待遇,喝饮料,有美女客服陪聊,此处省略10000字,那么当你的存款为1w的时候,可能你去办事就需要排队了,都是你但是你所处的状态不同了,所以同样是取钱,或者办其他的业务,所得到的待遇就明显的不同。那么我们在软件设计中也会有类似的情况,不同的状态下,同样的事,有不同的处理办法。这个同样的事,其实是接口中规定的动作,不同的处理方法就是接口的各种状态对应实现,这里面也有一个上下文的概念,就是存储当前状态和改变当前状态的方法在这里,面向接口编程,直接调用接口的方法,根据上下文中当前的状态去执行不同的状态实现,这就是状态模式的实现原理,当然状态改变的方法可以放在上下文类中,也可以放在接口的实现类中。两种方式各有利弊,大家自己想想吧。
那么我们什么情况下使用状态模式呢,大家可以说说自己的观点,共同提高一下!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值