安卓开发求职招聘微信群 https://www.edunews.net.cn/2021/ywbb_0915/133267.html概述
状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
之前的文章已经详细阐述了这种设计模式的核心和注意事项,并完成了基类设计,请参见《C语言-状态模式(基类部分)》,本文将结合实际案例论证这种设计模式,加深读者对状态模式的理解和应用。
示例
★背景说明:水包含三种状态,固态、液态、气态,而三种状态根据温度决定,不同温度对应不同状态,当改变水温,对应的状态将会自行改变。
★环境对象(water):
属性:温度(当前水温)
行为:获取温度、设置温度、提高温度、降低温度、处理函数。
继承:继承环境类context基类
★状态对象(固态、液态、气态,每种状态单例设计)/p>
属性:无
行为:无。
继承:继承状态类state基类
★包含头文件water.h和源文件water.c(均已验证通过)
water.h
/***
Filename:water.h*Revision
Revision:1.0$*Author:Feng(