用状态机封装领域逻辑
如果无法正常显示,请先停止浏览器的去广告插件。
1. 用状态机封装领域逻辑
潘加宇
2. CONTENTS
01 状态机的作用
02 状态机要点和建模思路
03 状态机的实现
3. 危险!
小孩耍大枪
4. 危险!
Research?Re-Search?
连Re-Search都没有,随意发明新词
Subdomain?主题图。
新瓶装旧酒
5. 测试
答对问题有奖金
金额从2.56元到20.48元
请扫我微信以便当场转账
加微信时烦告知尊姓大名
6. 作用
编译原理
电子设计自动化
通信协议
……
学校里经常教的
7. 作用
图形
类图
序列图
状态机图
视角
全局、静态
局部(用例)、动态
类、动态
三个不同的图
映射到实现
类的签名
类之间的协作
所有的逻辑
8. 测试
答对问题有奖金
金额从2.56元到20.48元
请扫我微信以便当场转账
加微信时烦告知尊姓大名
9. 作用
都以为自己在做正常的事情,
系统却出问题了
强制封装保护信息完整性
条件语句?泛化?不重要了
逻辑内移
10. 作用
专家原则、可视原则
减少get/set
接口变简单
帮助定义恰当的责任
11. 要素
12. 状态
行为由组合决定
复杂就在这里!
状态--表现相同行为的属性值和链接的组合
13. 状态
顶点和边的含义相反
不同的思考范型
“状态的类”要说得通!
状态机图 vs. 活动图
14. 状态
网络上随便搜来
的“状态机图”
15. 状态
互斥
子状态
16. 状态
提炼公共迁移
分层复用行为
17. 状态
不是“流程开始”的意思
进入状态时,缺省的子状态
对象掉入集合时,缺省掉入哪
个子集合
历史:记住离开时的子状态
缺省和历史
18. 状态
从不同维度
分割属性值组合
高富帅 矮穷丑
高穷丑 矮富帅
不同分区的状态并存
并发状态
19. 测试
答对问题有奖金
金额从2.56元到20.48元
请扫我微信以便当场转账
加微信时烦告知尊姓大名
20. 状态
逻辑进一步内收
entry:进入时必须执行
exit:离开时必须执行
入口动作和出口动作
21. 迁移
1. 当前状态是否能接受事件
2. 警戒条件
如果为真
3. Exit:先子后父
4. Action和Message
5. 改变状态
6 . Entry:先父后子
迁移的结构和执行顺序
22. 测试
答对问题有奖金
金额从2.56元到20.48元
请扫我微信以便当场转账
加微信时烦告知尊姓大名
23. 建模
全方位建模的可能性和必要性
核心类
状态多事物(彩色建模)实体责任起点聚合的根
图形界面
质量要求很高的系统,每个类
哪些类值得画状态机
24. 建模
从类名思考修饰词(形容词)
吃饱了没?吃饱好干活
从行为思考状态变化
从状态属性思考状态名称
优先用原生形容词,防止换汤不换药
有进有出
警戒条件之和必须是完备集(“其他”)且不重叠
要点
25. 建模
打车领域
26. 建模
27. 实现
Rhapsody
28. 执行
http://www.umlchina.com/training/umlchina_rhap_lab_dishwasher_81.pdf
http://www.umlchina.com/training/download.htm
29. 测试
答对问题有奖金
金额从2.56元到20.48元
请扫我微信以便当场转账
加微信时烦告知尊姓大名
30. THANK YOU