本文共 2296 字,大约阅读时间需要 7 分钟。
状态模式:允许一个对象在其内部状态改变时改变其行为。
举一个简单的小例子,我们在对一个小姐姐搭讪的时候,根据小姐姐的心情如何我们可能会得到不同的回复。
看一下类图
看一下代码:
public interface Girl { public void say();}public class AngryGirl implements Girl { @Override public void say() { System.out.println("滚"); }}public class HappyGirl implements Girl { public void say(){ System.out.println("你好哦,小哥哥"); }}public class Boy { private Girl girl; public void say(){ this.girl.say(); } public void setGirl(Girl girl){ this.girl=girl; }} interface Girl { public void say();}public class AngryGirl implements Girl { @Override public void say() { System.out.println("滚"); }}public class HappyGirl implements Girl { public void say(){ System.out.println("你好哦,小哥哥"); }}public class Boy { private Girl girl; public void say(){ this.girl.say(); } public void setGirl(Girl girl){ this.girl=girl; }}
如此,Boy持有不同状态的Girl对象时获取的回复是不同的,这样就实现了一个简单的状态模式。
本文出自,转载请保留。
状态模式:允许一个对象在其内部状态改变时改变其行为。
举一个简单的小例子,我们在对一个小姐姐搭讪的时候,根据小姐姐的心情如何我们可能会得到不同的回复。
看一下类图
看一下代码:
public interface Girl { public void say();}public class AngryGirl implements Girl { @Override public void say() { System.out.println("滚"); }}public class HappyGirl implements Girl { public void say(){ System.out.println("你好哦,小哥哥"); }}public class Boy { private Girl girl; public void say(){ this.girl.say(); } public void setGirl(Girl girl){ this.girl=girl; }} interface Girl { public void say();}public class AngryGirl implements Girl { @Override public void say() { System.out.println("滚"); }}public class HappyGirl implements Girl { public void say(){ System.out.println("你好哦,小哥哥"); }}public class Boy { private Girl girl; public void say(){ this.girl.say(); } public void setGirl(Girl girl){ this.girl=girl; }}
如此,Boy持有不同状态的Girl对象时获取的回复是不同的,这样就实现了一个简单的状态模式。
本文出自,转载请保留。