We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent ff365d5 commit 21bcf5cCopy full SHA for 21bcf5c
src/com/company/State/summary.txt
@@ -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