北京治疗白癜风多少钱咨询 http://pf.39.net/bdfyy/
概述
状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
之前的文章已经详细阐述了这种设计模式的核心和注意事项,并完成了基类设计,请参见《C语言-状态模式(基类部分)》,本文将结合实际案例论证这种设计模式,加深读者对状态模式的理解和应用。
示例
★背景说明:音乐播放器包含四种状态,播放态、暂停态、快进态、停止态,而四种状态根据外界按键是否按下决定,按键包含三种(playstopspeed),当按下按键,对应的状态将会自行改变。
★环境对象(music):
属性:无
行为:按下播放键、按下快进键、按下停止键、获取各按键状态、处理函数。
继承:继承环境类Context基类
★状态对象(播放态、暂停态、快进态、停止态,每种状态单例设计):
属性:无
行为:无。
继承:继承状态类State基类
★包含头文件music.h和源文件music.c(均已验证通过)
music.h
/***
Filename:music.h*Revision:Revision:1.0*Author:Feng(