状态设计模式,GOF定义的23种设计模式之一,属于行为型模式。常用在需要根据对象的状态动态的改变队形的行为时。例如闹钟程序常见的功能,在工作日的时候会准时响起,休息日就不会打扰我们休息,这样的功能就可以使用状态模式来完成。
代码如下
public class test
{
public static void main(String[] args)
{
run r=new run();
for(int i=0;i<7;i++)
r.show();
}
}
abstract class clock
{
int day=1;
public abstract void work();
}
class workDay extends clock
{
public void work()
{
System.out.println("wake up....");
day++;
}
}
class restDay extends clock
{
public void work()
{
System.out.println("clock doesn't working");
day++;
}
}
class run
{
clock c;
public run()
{
c=new workDay();
}
public void show()
{
work();
}
public void work()
{
if(c.day>5)
c=new restDay();
c.work();
}
}
效果如图
2016-8-18
19:54