状态机高阶讲解-18

发布于:2024-04-19 ⋅ 阅读:(20) ⋅ 点赞:(0)

2792
01:54:59,000 --> 01:54:59,740
确定

2793
01:55:00,920 --> 01:55:03,680
那就得到了这样一个状态机了

2794
01:55:03,680 --> 01:55:05,060
它是根据这个

2795
01:55:05,350 --> 01:55:07,760
属性的值

2796
01:55:08,040 --> 01:55:08,731
然后呢

2797
01:55:08,731 --> 01:55:11,037
当然,这里就一个状态

2798
01:55:11,037 --> 01:55:12,651
这个很简单

2799
01:55:12,651 --> 01:55:16,110
就演示一个这个,到这个条件

2800
01:55:16,390 --> 01:55:17,564
实际上就一个状态

2801
01:55:17,564 --> 01:55:20,500
自己到自己的转换

2802
01:55:21,910 --> 01:55:23,260
到这里以后呢

2803
01:55:23,260 --> 01:55:24,386
要么自转换

2804
01:55:24,386 --> 01:55:26,413
要么是回到自己这里

2805
01:55:26,413 --> 01:55:28,214
要么就是到终态

2806
01:55:28,214 --> 01:55:28,664
对吧

2807
01:55:28,664 --> 01:55:28,890


2808
01:55:29,540 --> 01:55:30,390
这样来

2809
01:55:31,850 --> 01:55:33,320
那下面我们就来

2810
01:55:37,040 --> 01:55:40,657
重新来编译和运行一下

2811
01:55:40,657 --> 01:55:41,260
你看

2812
01:55:42,160 --> 01:55:43,710
代码这里

2813
01:55:44,000 --> 01:55:45,070
生成

2814
01:55:50,940 --> 01:55:51,170


2815
01:55:51,170 --> 01:55:52,780
往上拖一点

2816
01:55:53,940 --> 01:55:54,190


2817
01:55:54,190 --> 01:55:55,194
构建完成

2818
01:55:55,194 --> 01:55:56,700
你看,倒数

2819
01:55:56,700 --> 01:55:58,456
已搞定,已开始

2820
01:55:58,456 --> 01:55:59,460
然后那个

2821
01:55:59,750 --> 01:56:02,662
10,9,8,7这样对吧

2822
01:56:02,662 --> 01:56:03,110
做完

2823
01:56:03,630 --> 01:56:04,720
这样来

2824
01:56:07,820 --> 01:56:10,511
那么我们回到这个类图

2825
01:56:10,511 --> 01:56:11,050
你看

2826
01:56:11,650 --> 01:56:11,863


2827
01:56:11,863 --> 01:56:13,996
它这里叫对象模型图

2828
01:56:13,996 --> 01:56:15,490
实际上就是类图了

2829
01:56:15,900 --> 01:56:17,623
那为什么叫对象模型图

2830
01:56:17,623 --> 01:56:22,580
因为它把那个类和对象可以放在同一个图上

2831
01:56:22,860 --> 01:56:26,930
所以呢,这里面你看这里有对象可以放进来

2832
01:56:27,620 --> 01:56:30,620
这时候我们可以来看一下

2833
01:56:31,090 --> 01:56:32,497
这个类的代码

2834
01:56:32,497 --> 01:56:34,842
你看,还是右键点那个

2835
01:56:34,842 --> 01:56:36,250
然后,编辑代码

2836
01:56:36,530 --> 01:56:38,790
是可以看到那个

2837
01:56:39,070 --> 01:56:40,580
生成的代码

2838
01:56:40,870 --> 01:56:41,093


2839
01:56:41,093 --> 01:56:42,210
在这里,对吧

2840
01:56:43,300 --> 01:56:45,035
包括已搞定,做完

2841
01:56:45,035 --> 01:56:46,120


2842
01:56:46,500 --> 01:56:48,270
已开始,都在这里

2843
01:56:50,040 --> 01:56:54,150
而且这个代码是可以直接运行的,刚才我们运行了

2844
01:56:54,430 --> 01:56:55,968
出现运行结果了嘛

2845
01:56:55,968 --> 01:56:56,310
对吧

2846
01:56:59,390 --> 01:57:02,650
你看,这里的代码是什么风格

2847
01:57:04,680 --> 01:57:04,870


2848
01:57:04,870 --> 01:57:06,010
这里你看

2849
01:57:06,290 --> 01:57:13,200
if if if if if多少层,一二三四

2850
01:57:13,830 --> 01:57:15,390
四层,对吧

2851
01:57:15,750 --> 01:57:16,580


2852
01:57:17,000 --> 01:57:18,660
四个嵌套的

2853
01:57:19,020 --> 01:57:19,810
if 

2854
01:57:21,230 --> 01:57:23,846
这个是嵌套条件的风格

2855
01:57:23,846 --> 01:57:24,718
但无所谓

2856
01:57:24,718 --> 01:57:26,898
因为我们根本就不用写

2857
01:57:26,898 --> 01:57:28,424
不是人写的对吧

2858
01:57:28,424 --> 01:57:30,604
这是生成的,对不对

2859
01:57:30,604 --> 01:57:33,220
那如果说我不想用if这个风格

2860
01:57:34,140 --> 01:57:36,714
我想生成另外一种风格

2861
01:57:36,714 --> 01:57:37,705
可不可以

2862
01:57:37,705 --> 01:57:38,695
可以的

2863
01:57:38,695 --> 01:57:40,675
那怎么调整

2864
01:57:40,675 --> 01:57:41,270
一样的

2865
01:57:41,550 --> 01:57:43,320
就在这个Component这里

2866
01:57:43,320 --> 01:57:44,560
组件这个地方

2867
01:57:44,880 --> 01:57:45,630


2868
01:57:46,490 --> 01:57:47,880
这个配置这里

2869
01:57:48,300 --> 01:57:51,652
Release这个地方

2870
01:57:51,652 --> 01:57:52,993
Release这个配置

2871
01:57:52,993 --> 01:57:53,160


2872
01:57:53,160 --> 01:57:54,669
我们重新在这里调整

2873
01:57:54,669 --> 01:57:56,010
我们先把这个关掉

2874
01:57:59,030 --> 01:57:59,227


2875
01:57:59,227 --> 01:58:01,600
我们双击Release这个

2876
01:58:03,580 --> 01:58:04,450
对吧

2877
01:58:06,030 --> 01:58:08,280
然后在这个设置这里

2878
01:58:09,420 --> 01:58:11,136
设置这个地方

2879
01:58:11,136 --> 01:58:13,343
你看这里写平铺的

2880
01:58:13,343 --> 01:58:15,796
实际上就是switch case

2881
01:58:15,796 --> 01:58:17,758
或者if else,平铺的

2882
01:58:17,758 --> 01:58:19,720
如果你变成可重用这个

2883
01:58:20,000 --> 01:58:20,413
实际上就是

2884
01:58:20,413 --> 01:58:21,860
面向对象这个

2885
01:58:22,260 --> 01:58:22,870


2886
01:58:24,700 --> 01:58:27,130
然后我们再点确定

2887
01:58:28,090 --> 01:58:28,292

2888
01:58:28,292 --> 01:58:30,930
这时候我们重新来看它的代码

2889
01:58:40,520 --> 01:58:40,758


2890
01:58:40,758 --> 01:58:44,102
你看,if else就消失了

2891
01:58:44,102 --> 01:58:45,296
只剩下什么

2892
01:58:45,296 --> 01:58:46,730
剩下就一层了,对不对

2893
01:58:47,010 --> 01:58:49,430
那剩下的其他在哪里

2894
01:58:49,940 --> 01:58:50,180


2895
01:58:50,180 --> 01:58:54,276
其他就变成子类的代码了

2896
01:58:54,276 --> 01:58:54,517


2897
01:58:54,517 --> 01:58:55,480
你看

2898
01:58:55,480 --> 01:58:57,167
if else就只剩一层了

2899
01:58:57,167 --> 01:58:57,890
对不对

2900
01:58:59,010 --> 01:58:59,295


2901
01:58:59,295 --> 01:59:01,290
但是呢,它的方法

2902
01:59:01,290 --> 01:59:03,570
它这些,你看

2903
01:59:04,330 --> 01:59:07,150
就多了很多小个的那个

2904
01:59:07,830 --> 01:59:09,930
这些

2905
01:59:10,510 --> 01:59:11,990
操作

2906
01:59:11,990 --> 01:59:12,286


2907
01:59:12,286 --> 01:59:13,470
你看这里

2908
01:59:15,560 --> 01:59:18,191
刚才那个大的层就没有了

2909
01:59:18,191 --> 01:59:20,620
但多了很多小小小小的片段

2910
01:59:24,390 --> 01:59:27,522
变成了面向对象的风格

2911
01:59:27,522 --> 01:59:28,110
这地方

2912
01:59:29,330 --> 01:59:32,012
刚才这里嘛,很多层就没有了

2913
01:59:32,012 --> 01:59:32,460
对吧

2914
01:59:35,370 --> 01:59:35,883

2915
01:59:35,883 --> 01:59:36,910
这是

2916
01:59:37,550 --> 01:59:38,770
生成代码

2917
01:59:39,050 --> 01:59:44,780
那Rhapsody的另外一个很强的地方就是调试

2918
01:59:45,290 --> 01:59:47,220
状态机的

2919
01:59:48,370 --> 01:59:50,210
这样的一个

2920
01:59:51,060 --> 01:59:51,817
功能

2921
01:59:51,817 --> 01:59:55,100
那这个是非常强的,那我们可以

2922
01:59:55,380 --> 01:59:56,365
看一下

2923
01:59:56,365 --> 01:59:57,350
怎么调试

2924
02:00:01,600 --> 02:00:03,300
那首先我们来看

2925
02:00:03,610 --> 02:00:05,090
对这个组件

2926
02:00:06,630 --> 02:00:07,518
的配置

2927
02:00:07,518 --> 02:00:11,665
这里,我们再重新做一个配置

2928
02:00:11,665 --> 02:00:12,850
那怎么做

2929
02:00:15,990 --> 02:00:16,890
这个

2930
02:00:17,440 --> 02:00:18,130
Component

2931
02:00:18,130 --> 02:00:19,280
这里

2932
02:00:19,280 --> 02:00:22,040
然后呢,这个配置这个地方

2933
02:00:22,800 --> 02:00:25,010
然后按住

2934
02:00:26,970 --> 02:00:29,610
Release这个配置

2935
02:00:29,610 --> 02:00:30,930
然后按住Ctrl

2936
02:00:32,010 --> 02:00:32,182


2937
02:00:32,182 --> 02:00:33,386
按住Release这个

2938
02:00:33,386 --> 02:00:34,418
然后按住Ctrl

2939
02:00:34,418 --> 02:00:35,450
把它拖到这里

2940
02:00:36,030 --> 02:00:38,370
拖到配置这里,就复制一个的意思

2941
02:00:38,710 --> 02:00:41,815
你看,多了一个release copy的副本

2942
02:00:41,815 --> 02:00:42,259
对吧

2943
02:00:42,259 --> 02:00:43,590
Release副本

2944
02:00:45,850 --> 02:00:47,460
相当于复制一个

2945
02:00:47,740 --> 02:00:47,949


2946
02:00:47,949 --> 02:00:50,880
那我们双击这个,在这里来对它做

2947
02:00:51,480 --> 02:00:52,724
调节

2948
02:00:52,724 --> 02:00:54,590
调节它的属性

2949
02:00:54,590 --> 02:00:55,834


2950
02:00:55,834 --> 02:00:58,529
我们这个可以叫

2951
02:00:58,529 --> 02:00:59,773
名字可以叫Debug

2952
02:00:59,773 --> 02:01:00,810
跟我们那个

2953
02:01:01,090 --> 02:01:01,990
Debug

2954
02:01:03,120 --> 02:01:06,270
跟我们那个编码环境里面那个一样的

2955
02:01:06,270 --> 02:01:06,620
对吧

2956
02:01:07,460 --> 02:01:08,510
然后呢

2957
02:01:08,510 --> 02:01:08,860

2958
02:01:09,170 --> 02:01:10,420
设置这里

2959
02:01:12,960 --> 02:01:14,310
我们把

2960
02:01:18,510 --> 02:01:19,510
这个

2961
02:01:20,580 --> 02:01:22,490
检测模式这个

2962
02:01:22,840 --> 02:01:24,330


2963
02:01:24,950 --> 02:01:25,163


2964
02:01:25,163 --> 02:01:27,940
检测这个翻译

2965
02:01:27,940 --> 02:01:29,435
%……&&

2966
02:01:29,435 --> 02:01:30,930


2967
02:01:31,740 --> 02:01:31,981


2968
02:01:31,981 --> 02:01:36,820
它是本来无,可以改成动画

2969
02:01:38,300 --> 02:01:39,340
动画

2970
02:01:41,880 --> 02:01:43,160
这个地方

2971
02:01:45,300 --> 02:01:46,150

2972
02:01:46,670 --> 02:01:48,760
然后我们就确定

2973
02:01:49,070 --> 02:01:51,030
那现在有两个配置

2974
02:01:51,030 --> 02:01:51,684
一个Debug

2975
02:01:51,684 --> 02:01:52,991
一个是Release

2976
02:01:52,991 --> 02:01:53,426
对吧

2977
02:01:53,426 --> 02:01:57,130
那我们就要把这个debug设成活动的

2978
02:01:57,410 --> 02:02:00,025
右键点这个,设置为活动配置

2979
02:02:00,025 --> 02:02:03,647
我们用这个,不用Release,用Release的话

2980
02:02:03,647 --> 02:02:06,465
它是直接运行的

2981
02:02:06,465 --> 02:02:07,270
你用这个

2982
02:02:07,810 --> 02:02:10,310
那进入了调试的模式

2983
02:02:11,200 --> 02:02:13,125
那我们再来看,怎么调试

2984
02:02:13,125 --> 02:02:13,510
你看

2985
02:02:14,870 --> 02:02:15,564
代码

2986
02:02:15,564 --> 02:02:18,110
像前面运行的一样的

2987
02:02:18,840 --> 02:02:19,732
工具栏

2988
02:02:19,732 --> 02:02:21,160
在这里,这个地方

2989
02:02:21,620 --> 02:02:21,836


2990
02:02:21,836 --> 02:02:23,564
你要是不想用这个

2991
02:02:23,564 --> 02:02:25,509
为什么要选这个

2992
02:02:25,509 --> 02:02:27,886
因为这样大家看得清楚

2993
02:02:27,886 --> 02:02:29,399
如果是习惯了

2994
02:02:29,399 --> 02:02:30,264
你用熟了

2995
02:02:30,264 --> 02:02:32,641
你就直接点这个地方了

2996
02:02:32,641 --> 02:02:34,370
这地方,我们

2997
02:02:34,680 --> 02:02:36,300
既然是刚开始学嘛

2998
02:02:36,300 --> 02:02:37,515
我们正规一点

2999
02:02:37,515 --> 02:02:39,540
就这样,点这里,这里

3000
02:02:44,020 --> 02:02:44,248


3001
02:02:44,248 --> 02:02:46,300
问要不要创建

3002
02:02:46,300 --> 02:02:47,440
创建

3003
02:02:53,260 --> 02:02:53,528

3004
02:02:53,528 --> 02:02:55,140
就开始创建了