Design Pattern(3)-State Pattern
来源:互联网 发布:iwatch软件 编辑:程序博客网 时间:2024/06/11 08:50
学过编译原理应该知道有限状态机,状态模式就是适用于那种希望 一个对象在不同状态下呈现不一样的行为的一种design pattern。
我们以一个实例来诠释,有一个Door对象,Door对象有两个状态:OpenState,ClosedState,当我们提交一个请求的时候,它若在OpenState状态,希望它能执行关闭操作,它若在ClosedState状态,希望它能执行打开操作。
官方类图:
State:
public abstract class State { public abstract void handle(Door door);}
OpenState:
public class OpenState extends State{ @Override public void handle(Door door) { System.out.println("the door has closed"); door.changeState(new ClosedState()); }}
ClosedState:
public class ClosedState extends State { @Override public void handle(Door door) { System.out.println("the door has opened"); door.changeState(new OpenState()); }}
Door:
public class Door { State state; public Door(State state){ this.state=state; } public void request() { state.handle(this); } protected void changeState(State state) { this.state=state; }}
Client:
public class Client { public static void main(String[] args){ Door door =new Door(new OpenState()); door.request(); door.request(); door.request(); }}
输出为:
the door has closed
the door has opened
the door has closed
0 0
- Design Pattern(3)-State Pattern
- Design Pattern 18-state
- State Design Pattern: Reminder
- State Design Pattern
- Java Design Pattern: State
- [Special] Design Pattern - Behavioral Patterns - State Pattern
- Introduction to State Design Pattern
- State Design Pattern: Ultimate Hook
- Design Pattern - State(C#)
- design pattern——state
- State Design Pattern 状态设计模式
- State Design Pattern 状态设计模式2
- 状态模式(State Design Pattern)
- State Pattern
- State Pattern
- Design Pattern 3-Composite
- Design pattern----Facade Pattern
- Design pattern----Strategy Pattern
- 2016zzuli校赛G题 《蛤玮点菜》(中途相遇法)
- 第五周:58. Length of Last Word
- 华为oj初级 DNA序列
- 这个大学念的完美!我只想收藏下!
- dubbo源码浅析(二)-标签解析
- Design Pattern(3)-State Pattern
- git上传到一半最后报error:failed to push some refs to 'git@github.com:yourname/repositoryname.git'
- 表格花式效果
- html5标签
- 第六届蓝桥杯 省赛 JavaB组 立方变自身
- C# TCP同步客户端
- NumPy详细API第五篇
- 类
- java中集合的总结