解析C++编程中如何使用设计模式中的状态模式结构

2020-01-06 14:48:58王振洲

2.在具体实现过程中,对状态的改变我们会在 Context 类中实现(因为Context 才有 State 的概念),而在 State 子类中的状态转变逻辑实现则通过调用这个实现来达到目的。当然为了不让这个改变状态的接口暴露给普通客户程序员,我们将 Context 中这个接口声明为 private,而在将State 类声明为 Context 的 friend 类,并且将 State 子类中状态改变逻辑实现声明为 Protected,不让普通客户程序员调用。具体请参考示例代码部分。