弄浪的鱼

  • 定义与类型
    • 定义:在不改变原有对象的基础上,将功能附加到对象上
    • 提供了比继承更有弹性的替代方案(扩展原有对象功能)
    • 类型:结构型
  • 适用场景
    • 扩展一个类的功能或给一个类添加附加职责
    • 动态的给一个对象添加功能,这些功能可以再动态地撤销
  • 优点
    • 继承的有力补充,比继承灵活,不改变原有对象的情况下给一个对象扩展功能
    • 通过使用不同装饰类以及这些装饰类的排列组合,可以实现不同效果
    • 符合开闭原则
  • 缺点
    • 会出现更多的代码,更多的类,增加程序复杂性
    • 动态装饰时,多层装饰时会更负责
  • 相关设计模式
    • 装饰者模式和代理模式
    • 装饰者模式和适配器模式
类别 原因短语
1xx Informational(信息性状态码) 接收的请求正在处理
2xx Success(成功状态码) 请求正常处理完毕
3xx Redirection(重定向状态码) 需要进行附加操作以完成请求
4xx Client Error(客户端错误状态码) 服务器无法处理请求
5xx Server Error(服务器错误状态码) 服务器处理请求出错

通信协议经典例子

占据两个山顶的蓝军与驻扎在这山谷的白军作战。力量对比是:一个山顶上的蓝军打不过白军,但两个山顶的蓝军协同作战就可战胜白军 。一个山顶上的蓝军拟于次日正午向白军发起攻击。于是发送电文给 另一山顶上的友军。但通信线路很不好,电文出错的可能性很大。因此要求收到电文的友军必须发送确认电文。但确认电文也可能出错。 试问能否设计出一种协议,使得蓝军能实现协同作战因而一定(即100 %)取得胜利?