State - 状态模式

本文深入探讨了状态模式,一种行为设计模式,它允许对象在内部状态改变时改变其行为。通过将状态对象化,状态模式让对象在不违反封装原则的情况下切换其行为。文章详细解释了模式的组成部分,包括上下文、状态接口和具体状态类,并通过实例说明如何在代码中实现和使用状态模式。
摘要由CSDN通过智能技术生成
定义
允许一个对象在其内部状态改变时改变它的行为。

案例
比如一个表示网络连接的类TCPConnection,它有不同的状态:连接已建立(Established),正在监听(Listening),连接已关闭(Closed)。当这个TCPConnection收到其他对象请求时,根据自身不同状态做出不同的响应。使用State模式处理这类问题的时候,引入一个TCPState类,它提供了所有正对TCPConnection不同状态操作的一个公共接口。


TCPConnection提供了一个传送数据的接口并处理改变状态的请求:
   
   
   
  1. Class TCPConnection
  2. {
  3. public:
  4. TCPConnection();
  5. void activeOPen();
  6. void passiveOpen();
  7. void close();
  8. void send();
  9. protected:
  10. friend class TCPState;
  11. void changeState(TCPState* state);
  12. private:
  13. TCPState*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值