定义
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。还没有明显感觉出和策略模式有什么本质区别。书上给出的时一个是可替换的,另一个不可替换,下次再研究下。
使用场景
考虑一个在线投票系统的应用,实现一个用户只能投一票,如果一个用户反复投票,而且投票次数超过5次,则判定为恶意投票,取消该用户的投票资格,当然要取消该用户所投的票,如果一个用户投票的次数超过8次,加入黑名单,禁止再登陆和使用系统。
代码
状态接口
package state;
import java.util.HashMap;
import java.util.Map;
public interface State {
//