状态模式是对象的行为模式。状态模式运行一个对象在其内部状态改变的时候改变其行为。

代码:
public class Test {
public static void main(String[] args) {
Person p = new Person();
p.smile();
p.eat();
p.sleep();
p.setState(new SadState()); // 改变对象的状态
p.smile();
p.eat();
p.sleep();
}
}
class Person {
private FeelingState state = new HappyState();
public void setState(FeelingState state) { // 提供方法,可以改变对象内部状态
this.state = state;
}
public void smile () {
state.smile();
}
public void eat () {
state.eat();
}
public void sleep() {
state.sleep();
}
}
interface FeelingState {
void smile ();
void eat ();
void sleep();
}
class HappyState implements FeelingState {
public void smile() {
System.out.println("狂笑。。。);
}
public void eat() {
System.out.println("大口大口吃饭。。。);
}
public void sleep() {
System.out.println("婴儿般睡眠。。。");
}
}
class SadState implements FeelingState {
public void smile() {
System.out.println("惨笑。。。);
}
public void eat() {
System.out.println("难以下咽。。。);
}
public void sleep() {
System.out.println("彻夜难眠。。。);
}
}
本文通过一个具体的例子详细介绍了状态模式的概念及其实现方式。状态模式允许一个对象在其内部状态改变时改变其行为,使得对象看起来像是改变了其类。文章中通过一个人物在不同心情下表现的不同行为来展示了这一模式的应用。
1969

被折叠的 条评论
为什么被折叠?



