状态模式
模式定义
状态模式允许对象在内部状态改变时改变其行为,并且,此改变对于客户端透明。状态模式将不同状态下的对象行为进行解耦。该模式在GOF95中被分类为行为模式。
模式结构与说明
- Context 是一个类,它可以拥有一些内部状态,这些状态使用 State 接口表示
- 不管何时,Client调用 Context.request() 方法时,Context都将该调用委托给 State 对象处理
- 规定了所有具体状态的公共接口,这样确保了状态之间可以互相替换
- 都提供了它自己对于请求处理的实现
- 的状态发生改变,单这需要前者持有后者的引用
需要注意的是, 对象包含的方法数量取决于状态机支持的操作的数量,具体状态的数量则取决于状态机包含的状态的数量。
状态转换可能由 中完成状态转换。状态转换绝不会有客户代码驱动。
状态模式的优点:
- 简化应用逻辑控制,避免了庞大的if-else结构
- 更好的分离了状态与行为
状态模式的缺点:
- 由于每个状态引入一个 ,可能导致程序中出现太多的状态类,显得混乱
- 违反了OCP,当…
18 years ago
0
Linux IO知识集锦
IO编程
参考:
简介
在UNIX的世界里,Terminal、TTY、Console这些术语是紧密相关的,一般可以认为Terminal就是TTY,Console则是指物理存在的Terminal。
终端
终端(Terminal)起源于大型主机的时代,由于昂贵的造价…
阅读全文
18 years ago
0
Linux网络知识集锦
网络编程
参考:
Bonding
网络接口绑定(Network Interface Bonding)是Linux下的一项技术,它能够将多块物理网卡绑定为单一的逻辑网卡,从而实现:
- 带宽增加
- 提供容错能力,防止一根网线损坏的情况
也叫Teaming、 Link Aggr…
阅读全文
18 years ago
0
1
Linux知识集锦
Linux编程
参考:Linux编程知识集锦
Unix知识
Unix简介
Unix系统是指遵循特定规范的计算机操作系统,这个规范称为“单一UNIX规范”,定义了所有UNIX系统必须提供的系统函数的名称、接口、行为,该规范很大程度上是POSIX规范的超集。
类Unix系统都是可移植操作系统…
阅读全文
18 years ago
0