设计模式/行为型设计模式
简述
允许一个对象在其内部状态改变的时候改变其行为对象行为的变化是由于状态的变化引入,
那么即当内部状态发生变化的时候,就会改变对象的行为,而这种改变视乎就改变了整个类
UML图
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| public interface CatState { void execute(); }
@Slf4j public class DefaultState implements CatState { @Override public void execute() { log.debug(“默认状态 — “); } }
@Slf4j public class ColorState implements CatState { @Override public void execute() { log.debug(“颜色状态 — “); log.debug(“猫的毛色 — “); } }
@Data public class CatContext { private CatState catState;
public void handle(Cat cat) { catState = new DefaultState(); catState.execute(); } }
public class Client { public static void main(String[] args) { CatContext catContext = new CatContext(); catContext.handle(new Cat()); } }
|