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

自己根据视频内容总结的,不足之处请见谅。
------<a  target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

        分析
       
        对这条道路进行分析:一共有四个方向的道路:东南西北,每条道路有前行、左转、右转三个方向,一共十二条道路。我总结为:四路三向十二道。
        特点:开过车的朋友都知道,向右的转向是不限制的,只要条件允许,什么时候都是可以通行的,而剩下的两个方向的运行规律是:先直行走,再向左转走,再等左右方向的车过。
       
        用到的对象
        面向对象有一个非常显著的特征:不考虑过程 ,所以在车的运行过程之中一定要抓住什么是它们运行的规律。车只要停留在相应的车道内,那么这个 车的运行的轨迹就已经确定了,只要允许通行并且前面没有已经存在了的车,那么,这个车就可以运行,所以,车的行驶路线一定要定义成一个对象。
        有了行驶路线了,也一定要有行驶规则,否则会造成交通的混乱,那么,行驶规则是靠什么来定义的呢?是靠红绿灯来控制的。红绿灯的变化决定了哪些车道可以通行,哪些 不可以。
        红绿灯也不是可以随便想怎么变化就怎么变化的,一定要有一定的规则来控制,那么这个规则就是红绿交通灯的控制系统。
        那么,经过分析 ,我们要编程的三个对象 就已经出来了。
       
        用到的对象的分析:
        定义的三个变量分别是:Lamp,Road,LampController。
        Lamp:Lamp共有十二个方向,但是,向右拐的四个方向上一定是绿灯,是不需要控制的,而每个方向的对面与其灯的状态一定是相同的,所以,只需要控制交叉的两个方向上直行与左拐的四个灯的方向即可。我们选择南和东两个方向做参照,那么,这四个灯在一个时间内只能有一个灯亮。而灯的种类是已经确定了的,所以,用枚举来定义灯是再合适不过的了。
        LampController:是通过控制灯来实现的,所以,它只需要接收目前阶段的亮的那个灯,再结合实际,就可以知道当前的路况,得到控制的具体情况。
        Road:产生车辆的类。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马