首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计形式笔记之-状态模式

2012-11-07 
设计模式笔记之---状态模式状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像

设计模式笔记之---状态模式

状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

       状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况,把状态的判断转义到表示不同状态的一系列类当中,可以把负责的判断逻辑简化。当遇到需要根据不同的状态进行不同的处理时,大多数是采用switch语句进行处理,但当逻辑过于复杂时,switch就会变得非常庞大,从而不利于修改和扩展。状态模式把各种状态转移逻辑分布到其子类中,从而减少了互相之间的依赖。

UML类图:

                    设计形式笔记之-状态模式

状态模式基本代码:

#include "State.h"#include <iostream>using namespace std;int main(int argc,char* argv[]){cout<<"*************************************"<<endl;cout<<"firehood 学设计模式之---状态模式"<<endl;cout<<"*************************************"<<endl;    Context content = Context(new ConcreteStateA);content.Request();content.Request();content.Request();content.Request();    system("pause");return 0;}

运行结果:

*************************************
firehood 学设计模式之---状态模式
*************************************
处理状态A
处理状态B
处理状态C
处理状态A
请按任意键继续. . .

热点排行