package com;
public class StateTest{
public static void main(String[] args) {
Man m = new Man();
m.request();
m.setState(new ChildrenState());
m.request();
}
}
abstract class State{
private String s;
abstract public void handle(Man m);
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
}
class BabyState extends State{
public BabyState() {
// TODO Auto-generated constructor stub
this.setS("Baby");
}
@Override
public void handle(Man m) {
// TODO Auto-generated method stub
System.out.println("i am Baby");
System.out.println("i will drink milk");
}
}
class ChildrenState extends State{
public ChildrenState() {
// TODO Auto-generated constructor stub
this.setS("children");
}
@Override
public void handle(Man m) {
// TODO Auto-generated method stub
System.out.println("i am children");
System.out.println("i will go to school");
}
}
class AdultState extends State{
public AdultState() {
// TODO Auto-generated constructor stub
this.setS("adult");
}
@Override
public void handle(Man m) {
// TODO Auto-generated method stub
System.out.println("i am adult");
System.out.println("i will marry");
System.out.println("i will make out my baby");
}
}
class OldState extends State{
public OldState() {
// TODO Auto-generated constructor stub
this.setS("i am old");
}
@Override
public void handle(Man m) {
// TODO Auto-generated method stub
System.out.println("i am old");
System.out.println("i will Retirement");
}
}
class Man{
private State s;
public Man() {
// TODO Auto-generated constructor stub
this.s = new BabyState();
}
public void request(){
s.handle(this);
}
public void setState(State s){
this.s = s;
}
}
结果:
i am Baby
i will drink milk
i am children
i will go to school
分享到:
相关推荐
java设计模式之-状态模式-实现
设计模式的状态模式的例子,希望对大家有用~~~~~~~~
设计模式是构建大型软件系统zui强大的方法之一,优化软件架构和设计...全书囊括单例设计模式、工厂模式、门面模式、代理模式、观察者模式、命令模式、模板方法模式、复合模式、状态设计模式以及反模式等多种设计模式。
设计模式-状态模式(讲解及其实现代码)
状态模式(State) 用意:允许一个对象当状态改变时,改变其行为。
java设计模式之状态模式入门
java,设计模式中的一种,状态设计模式。
状态设计模式用到的主要(30P概念 最小抽象状态设计模式 视频播放器具体状态应用程序 扩展状态设计:添加状态 添加更多的状态和流媒体播放能力 小结 第11章 策略模式 什么是策略模式? 策略模式使用的主要OOP...
通过学习如何在代码中使用...第10章 状态设计模式 第5部分 MySQL和PHP设计模式 第11章 通用类负责连接,代理模式保证安全 第12章 策略设计模式的灵活性 第13章 职责链设计模式 第14章 利用观察者模式构建多设备CMS
设计模式C++学习之状态模式(State)
这份文件讲诉了设计模式之状态模式,是以例子的形式进行讲诉的,希望可以帮助学习的人!
NULL 博文链接:https://zhangyan19870108.iteye.com/blog/1992409
设计模式之状态模式实例,用Java实现,副讲解 设计模式之状态模式实例,用Java实现,副讲解 设计模式之状态模式实例,用Java实现,副讲解
设计模式之状态模式的Java版本实现和UML类图设计
Java 23种设计模式24状态模式.pdf
相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多...
java设计模式之状态模式,通过实际生活中的例子说明状态模式的原理。
设计模式专题之(二十一)状态模式---设计模式状态模式示例代码(python--c++)
状态设计模式:CPSC 600状态模式存储库
PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML ...设计模式15-观察者模式、状态模式 设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。