当前位置: 首页 > news >正文

慈溪网站建设哪家好/湖南seo优化公司

慈溪网站建设哪家好,湖南seo优化公司,深圳政府在线官网,wordpress如何给头部加个搜索一、什么是状态模式 State模式也叫状态模式,是行为设计模式的 一种。State模式允许通过改变对象的内部状态 而改变对象的行为,这个对象表现得就好像修改 了它的类一样。 二、状态模式的应用场景 状态模式主要解决的是当控制一个对象状态转 换的条件表达式…

一、什么是状态模式

  State模式也叫状态模式,是行为设计模式的 一种。State模式允许通过改变对象的内部状态 而改变对象的行为,这个对象表现得就好像修改 了它的类一样。

 

二、状态模式的应用场景

  状态模式主要解决的是当控制一个对象状态转 换的条件表达式过于复杂时的情况。把状态的判 断逻辑转译到表现不同状态的一系列类当中,可 以把复杂的判断逻辑简化。

 

三、状态模式的结构

 

四、状态模式的角色和职责

  Context:用户对象 拥有一个State类型的成员,以标识对象的当前 状态;

  State:接口或基类 封装与Context的特定状态相关的行为;

  ConcreteState:接口实现类或子类 实现了一个与Context某个状态相关的行为。

 

 1 public class Person {
 2     private int hour;
 3 
 4     public int getHour() {
 5         return hour;
 6     }
 7 
 8     public void setHour(int hour) {
 9         this.hour = hour;
10     }
11     
12     public void doSomething(){
13         if(hour == 7) {
14             System.out.println("吃早餐");
15         } else if(hour == 12) {
16             System.out.println("吃中饭");
17         } else if(hour == 18) {
18             System.out.println("吃晚饭");
19         } else {
20             System.out.println(hour + "未定义");
21         }
22     }
23 }

 

 1 public class MainClass {
 2     public static void main(String[] args) {
 3         Person person = new Person();
 4         
 5         person.setHour(7);
 6         person.doSomething();
 7         
 8         person.setHour(12);
 9         person.doSomething();
10         
11         person.setHour(18);
12         person.doSomething();
13         
14         person.setHour(8);
15         person.doSomething();
16     }
17 }

 

=================================================================

使用状态模式

 1 public class Person {
 2     private int hour;
 3     private State state;
 4 
 5     public int getHour() {
 6         return hour;
 7     }
 8 
 9     public void setHour(int hour) {
10         this.hour = hour;
11     }
12     
13     public void doSomething(){
14         if(hour == 7) {
15             state = new MState();
16             state.doSomething();
17         } else if(hour == 12) {
18             state = new LState();
19             state.doSomething();
20         } else if(hour == 18) {
21             state = new SState();
22             state.doSomething();
23         } else {
24             state = new NoState();
25             state.doSomething();
26         }
27     }
28 }

状态  抽象

1 public abstract class State {
2     public abstract void  doSomething();
3 }

吃早餐

1 public class MState extends State {
2 
3     public void doSomething() {
4         System.out.println("吃早餐");
5     }
6 }

吃中午饭

1 public class LState extends State{
2 
3     public void doSomething() {
4         System.out.println("吃中饭");
5     }
6 }

吃晚饭

1 public class SState extends State {
2 
3     public void doSomething() {
4         System.out.println("吃晚饭");
5     }
6 }

未定义

1 public class NoState extends State {
2 
3     public void doSomething() {
4         System.out.println("未定义");
5     }
6 }

测试

 1 public class MainClass {
 2     public static void main(String[] args) {
 3         Person person = new Person();
 4         
 5         person.setHour(7);
 6         person.doSomething();
 7         
 8         person.setHour(12);
 9         person.doSomething();
10         
11         person.setHour(18);
12         person.doSomething();
13         
14         person.setHour(8);
15         person.doSomething();
16     }
17 }

 

转载于:https://www.cnblogs.com/justdoitba/p/9034954.html

http://www.lbrq.cn/news/833887.html

相关文章:

  • python做软件的网站/海外营销推广服务
  • 阿里云有域名之后怎么建设网站/福州seo招聘
  • 购物网站的搜索框用代码怎么做/seo范畴有哪些
  • 网站建设设计 飞沐/中国培训网官网
  • 哪个网站可以免费做推广/线上推广费用
  • 网站安装步骤页面/网店怎么推广和宣传
  • 百度网站如何做运营/泉州网站关键词排名
  • 黄骅市在哪里/网站快速排名优化
  • 网站建设和建议/2022年新闻大事
  • 雄安建站服务/竞价如何屏蔽恶意点击
  • 公众号制作网页/百度爱采购关键词优化
  • wordpress上传后如何访问/合肥seo按天收费
  • 青海住房建设厅网站/百度收录什么意思
  • wordpress 博客搭建/免费使用seo软件
  • 电子商务微网站制作/合肥seo网络优化公司
  • 成都生活家装饰公司总部电话/seo教程技术
  • ps做素材下载网站有哪些/站长工具官网
  • 在线做任务的网站/百度营销网页版
  • 兰州网站程序建设/百度网页版进入
  • wordpress avada 加速/佛山旺道seo
  • 深圳市官网网站建设哪家好/免费seo搜索优化
  • 长春做企业网站多少钱/免费发布信息网站大全
  • 哪个网站做兼职可靠/淘宝引流推广怎么做
  • 长沙seo网站排名/赣州seo优化
  • 恶意网站的防治/关键词在线优化
  • 太原网站建设制作/互联网销售是什么意思
  • dedecms5.7 整个网站 css和js代码怎么优化/精准粉丝引流推广
  • wordpress访问加速/seo优化几个关键词
  • 网站办理8元套餐/站内推广方案
  • 做拆分盘网站/沈阳网络优化培训
  • Ubuntu系统下交叉编译Android的X265库
  • 怎么把图片做成实拍的感觉?给图片加上拍摄时间,相机信息等就可以了
  • Unity 堆栈分析实战指南 C#
  • 【Linux】环境基础与开发工具的使用
  • 网络爬虫的介绍
  • React事件处理