[code]
/**
一个类中的方法是不稳定的,他在不同的状态下需要不同的方法,那么我们就应该把方法剥离出去,随着状态来提供方法。。。
MM的状态是不固定的,他在高兴,犹豫,伤心的时候都会说话,吃饭,聊天,但是不同的状态下的吃饭,聊天是不一样的。。。。所以我们得根据不同的状态来调用不同的方法。。。而状态是会扩展的,可能有好多种状态。。。。但是做什么事情不会扩展
技术上:因为状态扩展,所以状态需要被抽出来,=>有一个状态接口,而每个状态下面有具体的做某些事情的实现,所以在调用的守侯就调用某个状态的吃饭,聊天
*/
public interface State {
public void eating();
public void saying();
}
public class HappyState implements State {
@Override
public void eating() {
// TODO Auto-generated method stub
}
@Override
public void saying() {
// TODO Auto-generated method stub
}
}
public class MM {
private String name;
State s = new HappyState();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void saying(){
s.saying();
}
}
[/code]
/**
一个类中的方法是不稳定的,他在不同的状态下需要不同的方法,那么我们就应该把方法剥离出去,随着状态来提供方法。。。
MM的状态是不固定的,他在高兴,犹豫,伤心的时候都会说话,吃饭,聊天,但是不同的状态下的吃饭,聊天是不一样的。。。。所以我们得根据不同的状态来调用不同的方法。。。而状态是会扩展的,可能有好多种状态。。。。但是做什么事情不会扩展
技术上:因为状态扩展,所以状态需要被抽出来,=>有一个状态接口,而每个状态下面有具体的做某些事情的实现,所以在调用的守侯就调用某个状态的吃饭,聊天
*/
public interface State {
public void eating();
public void saying();
}
public class HappyState implements State {
@Override
public void eating() {
// TODO Auto-generated method stub
}
@Override
public void saying() {
// TODO Auto-generated method stub
}
}
public class MM {
private String name;
State s = new HappyState();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void saying(){
s.saying();
}
}
[/code]