今天看啥
热点:

Java设计模式——状态模式(State)


1979年在湖北出土的曾侯乙编钟,每一只钟都能发出不同的音。
用面向对象的语言来讲,编钟有能够动态变化的属性,也就是它所能发出的声音。编钟的这种属性叫做状态,而编钟被叫做有状态的对象。编钟所能发出的声音是由敲击的那一只钟决定,而钟的数目个每一只钟的状态是事先确定的。
很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的对象。
状态模式的类图如下:
这里写图片描述vcfJq9PQo7o8YnIgLz4NCjxzdHJvbmc+s+nP89e0zKy9x8mro6hTdGF0ZaOpOjwvc3Ryb25nPrao0uXSu7j2vdO/2qOs08PS1Lfi17C7t76zttTP87XE0ru49szYtqi1xNe0zKzL+bbU06a1xNDQzqo8YnIgLz4NCjxzdHJvbmc+vt/M5de0zKy9x8mrKENvbmNyZXRlU3RhdGUpo7o8L3N0cm9uZz7Dv9K7uPa+38zl17TMrMDgtrzKtc/Wwcu7t76ztcTSu7j217TMrMv5ttTTprXE0NDOqqGjPGJyIC8+DQo8c3Ryb25nPru3vrO9x8mro6hDb250ZXh0o6mjujwvc3Ryb25nPrao0uW/zbuntsvL+bjQ0MvIpLXEvdO/2qOssqLH0rGjwfTSu7j2vt/M5de0zKzA4LXEyrXA/aGjPGJyIC8+DQq008nPzby/ydLUv7Sz9qOsu7e+s8DgQ29udGV4dMrHy/m/vLLstcTA4KOstvjL+7XE0NDOqnNhbXBsZU9wZXJhdGlvbigpysfOr8XJuPjA4NDNzqpTdGF0ZbXE0ru49rbUz/O1xKGj08nT2lN0YXRlsb7J7crH0ru49rPpz/PA4LvyvdO/2qOsyrW8yrWjtbG0y8jOzvG1xMrHvt/M5bXE17TMrMDgo6y8tKO6Q29uY3JldGVTdGF0ZaGjyc/NvNa7uPiz9sHL0ru49r7fzOW1xNe0zKzA4KOstvjKtbzKx+m/9tbQu+HT0LrctuC+38zl17TMrMDgoaO7u9HU1q6jrLu3vrPA4ENvbnRleHS1xNDQzqpTYW1wbGVPcGVyYXRpb24oKcrHzq/Fybj4xLPSu7j2vt/M5de0zKzA4LXEoaM8YnIgLz4NCs2ouf3KudPDtuDMrNDU1K3U8qOsv8nS1LavzKy1xLjEseS7t76zwOBDb250ZXh0tcTK9NDUU3RhdGW1xMTayN2jrMq5xuS007TT1rjP8tK7uPa+38zl17TMrMDgseS7u7W91rjP8sHt0ru49r7fzOW1xNe0zKzA4KOstNO2+Mq5u7e+s8DgtcTQ0M6qc2FtcGxlT3BlcmF0aW9uKCnTybK7zay1xL7fzOXXtMyswLTWtNDQoaM8YnIgLz4NCru3vrO9x8mrtcTUtMLro7o8L3A+DQo8cHJlIGNsYXNzPQ=="brush:java;"> public class Context { private State state; public void sampleOperation(){ state.sampleOperation(); } public void setState(State state){ this.state = state; } } 抽象状态接口: public interface State { public void sampleOperation(); } 具体状态类: public class ConcreteState implements State { public void sampleOperation() { // do something } }

这里写图片描述系统的其他部分。

www.bkjia.comtruehttp://www.bkjia.com/Javabc/1002642.htmlTechArticleJava设计模式——状态模式(State) 1979年在湖北出土的曾侯乙编钟,每一只钟都能发出不同的音。 用面向对象的语言来讲,编钟有能够动态...

相关文章

相关搜索: 设计模式 状态 模式

帮客评论

视觉看点