auto commit

This commit is contained in:
CyC2018 2018-03-13 22:38:22 +08:00
parent eaa85f8ff3
commit 3aca6a5dbe

View File

@ -1459,9 +1459,9 @@ Context 的 request() 方法委托给 State 对象去处理。当 Context 组合
但是状态模式是通过状态转移来改变 Context 所组合的 State 对象,而策略模式是通过 Context 本身的决策来改变组合的 Strategy 对象。
所谓的状态转移,是指 Context 在运行过程中由于一些条件发生改变而使得 State 对象发生改变,主要必须要是在运行过程中。
所谓的状态转移,是指 Context 在运行过程中由于一些条件发生改变而使得 State 对象发生改变,注意必须要是在运行过程中。
状态模式主要是用来解决状态转移的问题,当状态发生庄毅了,那么 Context 对象就会改变它的行为;而策略模式主要是用来封装一组可以互相替代的算法族,并且可以根据需要动态地去替换 Context 需要使用哪个算法。
状态模式主要是用来解决状态转移的问题,当状态发生转移了,那么 Context 对象就会改变它的行为;而策略模式主要是用来封装一组可以互相替代的算法族,并且可以根据需要动态地去替换 Context 需要使用哪个算法。
**4. 问题描述**
@ -1481,7 +1481,7 @@ Context 的 request() 方法委托给 State 对象去处理。当 Context 组合
糖果销售机即 Context。
下面的实现中每个 State 都组合了 Context 对象,这是因为状态转移的操作在 State 对象中,而状态转移过程又必须改变 Context 对象的 state 对象,因此 State 必须拥有 Context 对象。
下面的实现中每个 State 都组合了 Context 对象,这是因为状态转移的操作在 State 对象中,而状态转移过程又必须改变 Context 对象的 state 对象,因此 State 必须组合 Context 对象。
```java
public interface State {
@ -1508,6 +1508,7 @@ public interface State {
```
```java
public class HasQuarterState implements State{
private GumballMachine gumballMachine;
public HasQuarterState(GumballMachine gumballMachine){
@ -1539,6 +1540,7 @@ public class HasQuarterState implements State{
```
```java
public class NoQuarterState implements State {
GumballMachine gumballMachine;
public NoQuarterState(GumballMachine gumballMachine) {
@ -1599,6 +1601,7 @@ public class SoldOutState implements State {
```
```java
public class SoldState implements State {
GumballMachine gumballMachine;
public SoldState(GumballMachine gumballMachine) {
@ -1634,6 +1637,7 @@ public class SoldState implements State {
```
```java
public class GumballMachine {
private State soldOutState;
private State noQuarterState;
private State hasQuarterState;
@ -1703,6 +1707,7 @@ public class GumballMachine {
```
```java
public class GumballMachineTestDrive {
public static void main(String[] args) {
GumballMachine gumballMachine = new GumballMachine(5);
@ -1782,7 +1787,7 @@ No gumball dispensed
过度使用设计模式可能导致代码被过度工程化,应该总是用最简单的解决方案完成工作,并在真正需要模式的地方才使用它。
反模式:不好的解决方案来解决一个问题。主要作用是为了警告不要使用这些解决方案。
反模式:不好的解决方案来解决一个问题。主要作用是为了警告人们不要使用这些解决方案。
模式分类: