读书人

设计形式==状态模式(State)

发布时间: 2012-12-26 14:39:29 作者: rapoo

设计模式==状态模式(State)

/* * 状态模式(State) * 在对象内部状态改变时改变其行为。 * 把所研究的对象的行为封装在不同的状态对象中。 */package model;import static java.lang.System.*;public class TestState {    public static void main(String[] args) {        BBSUser u = new BBSUser();        u.setState(new GuestState());        u.publish();        u.setState(new NormalState());        u.publish();        u.setState(new BlockedState());        u.publish();        u.setState(new NewComerState());        u.publish();    }}class BBSUser {    private State state;    public void setState(State state) {        this.state = state;    }    public void publish() {        state.action();    }}abstract class State {    public abstract void action();}class GuestState extends State {    public void action() {        out.println("您处在游客状态,请先登录");    }}class NormalState extends State {    public void action() {        out.println("您处在正常状态,文章发表成功");    }}class BlockedState extends State {    public void action() {        out.println("您处在被封状态,文章发表失败");    }}class NewComerState extends State {    public void action() {        out.println("您是新手,请先学习一下,3天后再来");    }}class StateFactory {    public static State createState(int i) {        if (i == 1)            return new GuestState();        else            return new NormalState();    }}
?

读书人网 >软件开发

热点推荐