A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑昌奋 中级黑马   /  2013-3-14 04:23  /  1031 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郑昌奋 于 2013-3-15 13:18 编辑

谁能帮我分析一下那个交通灯管理系统是怎么去设计那些类的啊?他们之间的逻辑我看了还是不懂。public enum Lamp {

/*
S:南
N:北
E:东
W:西
灯亮 :绿灯
灯灭:红灯
*///S2N,S2W,E2W,E2S,N2S,N2E,W2E,W2N,S2E,E2N,N2W,W2S

S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",false),E2S("W2N","S2N",false),//关注点
N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),
S2E(null,null,true),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true);还有这里的枚举表示是什么意思呢?

点评

如果问题已经解决了,请将分类改为已解决;一定要对别人的回答有相应的回复哦,谢谢  发表于 2013-3-15 08:23

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
这里看懂并不难,前提是要熟悉枚举,张老师的视频说得好清楚,不能光看,一定要测试观察枚举是执行的,元素有什么特点。
对于怎么设计,我也不懂,还是看张老师那个:面向对象设计把握一个重要的经验:谁拥有数据,谁就对外提供操作这些数据的方法。现牢牢掌握几个典型的案例就可以了:人在黑板上画圆,列车司机紧急刹车,售货员统计小标金额。你把门关上了。
回复 使用道具 举报
首先你得搞清楚相关的业务逻辑,东南西北四个方向每个方向有四条路线,加起来12条路线,所以就有12盏灯,每个方向向右的哪条路线不受交通灯控制,所以为常绿状态,为了统一编程模型,创照出相应的交通灯并设为常绿状态,其他八个方向的灯是两两对应的,有主灯和副灯的区别,主灯对面方向上的是副灯,而副灯没有副灯,也没有下一个灯的概念。构造四个主灯需要三个参数以S2N("N2S","S2W",false)为例,南到北对应方向的灯是北到南,下一个方向的灯是南到西,灯初始状态设为false,即灯处于红灯状态

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","E2S",false),E2S("W2N","S2N",false),//关注点
第一行相互之间有逻辑关系,弄懂这四个其它的就明白了,不要光看代码,前面的张老师画的图里面讲的有N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),
第二行是第一行四个灯相反方向对应的灯,状态和第一行的四个对象是同步的S2E(null,null,true),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true);还有这里的枚举表示是什么意思呢?
第三行是四个常绿的灯,为了统一编程的需要

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
vmvm555 发表于 2013-3-14 10:37
首先你得搞清楚相关的业务逻辑,东南西北四个方向每个方向有四条路线,加起来12条路线,所以就有12盏灯,每 ...

嗯,看了两遍才弄懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马