Skip to content

Commit 21bcf5c

Browse files
committed
增加状态模式的总结
1 parent ff365d5 commit 21bcf5c

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/com/company/State/summary.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
状态模式:
2+
状态模式中行为是由状态来决定的,不同的状态下有不同的行为。状态模式和策略模式在结构上几乎完全一样。
3+
但他们的目的或者本质却完全不一样
4+
5+
状态模式:行为是平行的,不可替换的
6+
策略模式:行为是彼此独立的,可以相互替换的
7+
8+
状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有相同的抽象状态基类。目的是让一个对象的状态
9+
发生变化的时候,其行为也跟着发生变化
10+
11+
使用场景:
12+
1.一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为
13+
2.代码中包含大量与对象状态有关的条件语句,如一个操作中含有大量的if else if,或者switch case语句
14+
且这些分支依赖于该对象的状态
15+
16+
模型:
17+
1.Context环境类 定义客户感兴趣的接口,维护一个State子类的实例,这个实例定义了当前状态
18+
2.State 抽象状态类或者是状态接口 定义一个或者一组接口,表示该状态下的行为
19+
3.ConcreteStateA/ConcreteStateB 具体的状态类,每一个具体的状态类都实现State中定义高的接口,
20+
从而达到了不同状态下的行为

0 commit comments

Comments
 (0)