java设计模式进阶_state

原创 2016年08月30日 15:38:57

这里写图片描述

//
//
//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : Untitled
//  @ File Name : State.java
//  @ Date : 2016/8/30
//  @ Author : 
//
//




public interface State {
    public void onEnterState();
    public void observe();
}

//
//
//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : Untitled
//  @ File Name : PeacefulState.java
//  @ Date : 2016/8/30
//  @ Author : 
//
//




public class PeacefulState implements State {

    private Mammoth mammoth;

    public PeacefulState(Mammoth mammoth) {
        this.mammoth = mammoth;
    }

    public void onEnterState() {
        System.out.println(String.format("%s calms down.", mammoth));
    }

    public void observe() {
        System.out.println(String.format("%s is calm and peaceful.", mammoth));
    }
}

//
//
//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : Untitled
//  @ File Name : AngryState.java
//  @ Date : 2016/8/30
//  @ Author : 
//
//




public class AngryState implements State {

    private Mammoth mammoth;

    public AngryState(Mammoth mammoth) {
        this.mammoth = mammoth;
    }

    public void onEnterState() {
        System.out.println(String.format("%s gets angry!", mammoth));
    }

    public void observe() {
        System.out.println(String.format("%s is furious!", mammoth));
    }
}


//
//
//  Generated by StarUML(tm) Java Add-In
//
//  @ Project : Untitled
//  @ File Name : Mammoth.java
//  @ Date : 2016/8/30
//  @ Author : 
//
//




public class Mammoth {

    private State state;

    public Mammoth(){
        state = new PeacefulState(this);
    }

    public void timePasses() {
        if(state.getClass().equals(PeacefulState.class))
        {
            changeStateTo(new AngryState(this));
        } else {
            changeStateTo(new PeacefulState(this));
        }
    }

    private void changeStateTo(State newState) {
        this.state = newState;
        this.state.onEnterState();
    }

    public String toString() {
        return "The mammoth";
    }

    public void observe() {
        this.state.observe();
    }
}


public class App {

    public static void main(String[] args) {
        Mammoth mammoth = new Mammoth();
        mammoth.observe();
        mammoth.timePasses();
        mammoth.observe();
        mammoth.timePasses();
        mammoth.observe();
    }
}




/*The mammoth is calm and peaceful.
The mammoth gets angry!
The mammoth is furious!
The mammoth calms down.
The mammoth is calm and peaceful.
*/







版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java进阶之--java设计模式

  • 2011-07-28 10:54
  • 322KB
  • 下载

JAVA设计模式-State

一个对像有不同的状态,不同的状态有不同的行为。也许你会说在方法里加上switch case语句就行了,这样的确能实现这样的方法,但是,就像前面一些设计模式的目的一样,这种方法不具可扩展性,因此我们需要...

java设计模式进阶_template-method

// // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : Stealin...

java设计模式进阶_command

// // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : Command...

Java进阶-设计模式

好久没有更新博客,这段时间太忙了。到了期末,忙里偷闲,整理整理学习笔记。什么是设计模式?在软件工程中,【设计模式】是对软件设计中普遍存在的各种问题,所提出的 解决方案。换句话说,设计模式是一套被反复使...

java设计模式进阶_dao

// // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : Custome...

java设计模式进阶_factory-method

// // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : Blacksm...

java设计模式进阶_bridge

// // // Generated by StarUML(tm) Java Add-In // // @ Project : Untitled // @ File Name : MagicWe...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)