代码改变世界

状态模式 State

2012-08-27 17:50  Mike.Jiang  阅读(381)  评论(0编辑  收藏  举报

状态模式(允许通过改变对象的内部状态而改变对象的行为, 这个对象表现得就好像修改了它的类一样)与策略模式的类图一样,实现一样,都是解耦if else 。只是它们解决问题的语境不同,但都可以归纳到解耦ifelse,将不同行为抽象成对象分布在子类当中,在Context中配置当前操作对象。这样在新增状态或修改已有状态时,不再违背开闭原则,遵守单一职责原则。